當前位置:才華齋>設計>網頁設計>

JavaScript的基礎知識

網頁設計 閱讀(6.57K)

var a=false;

JavaScript的基礎知識

!a&&alert("hi");

解釋 a為真才繼續往下執行,所以會彈出hi

var a=a||"hi";

解釋 當a為假的時候會繼續執行,當a為真的時候跳出這個語句,所以可以通過這個辦法複製預設值

上面的方法並非所有語言都是如此處理,比如PHP

$a=@$a||"hi";

echo $a;//1

php把(@$a||"hi")之後的值賦值過去了...

$a=true;

!$a&&echo "hi";

直接報錯:syntax error, unexpected T_ECHO

關於prototype

很多情況下看到prototype都想到只有物件的情況下有

var add=function(){alert("b");}

otype.a = function () {alert("hi");}

new otype.a;

第一反應,可能會報錯,其實不然,當沒有生產物件的時候,可以通過otype.a的方式直接呼叫靜態的方法的

JS挺會誤導人的,咳

選擇器問題:

有時候需要選擇一個節點下的子節點,用childNodes取值FIREFOX,IE的不同讓人很鬱悶

lementsByTagName("head")[0]lementsByTagName("script")[0];

上面的方法結果用在head標籤階段還好,用在其他的.不怎麼好用了

所有覺得還是用個類名作處理好點

複製程式碼 程式碼如下:

function getclassnode(classname,doc){

doc=doc||document;

var node=[],i=0,j=0,t;

var allnode=lementsByTagName("*");

while(t=allnode[i]){

if(RegExp(classname)(sName)){

node[j]=t;

j++;

}

i++;

}

return node;

}

自從用了JQ後,把原生的JS操作都忘的差不多了,偶爾複習下,感覺特麻煩,鬱悶.

補上一點今天發現的JS要注意的地方,如果一個JS已經引入到了當前文件,即使移除引入節點,通過該引入JS檔案定義的變數,函式等仍然有效,因為已經載入到了當前的文件環境,如下程式碼:

複製程式碼 程式碼如下:

lementsByTagName("head")[0]veChild(lementsByTagName("head")[0]lementsByTagName("script")[0]);