一、區分大小寫
二、單引號與雙引號
a) 沒有特殊的區別,但大多數的WEB開發者都選擇使用單引號而不是雙引號
三、換行
a) 無法你使用哪種引號來創建字符串,字符串中間都不能包含強制換行符;
四、如果你在同一頁面中組合使用了多個庫和不同來源的代碼,而這些腳本恰好需要使用被你覆蓋的核心函數完成相應的功能,那麼就可能會得到意外的結果;
五、匿名函數
a) 匿名函數是一種在不帶名稱的函數,
六、解析域和作用域
a) Function myFunction(){
var myVariable=’inside’;
}
var myVairable=’outside’;
myFunctio();
如果內部去掉爲myVariable賦值時使用的關鍵字var ,那麼myVariable的作用域將會解析到外部。(var 關鍵字決定了哪個函數是特定變量的作用域鏈的終點,同樣的邏輯也適用於取得變量值的情況);
七、迭代對象
a) Var all=document.body.getElementsByTagsName(‘*’);
For(i=0;i<all.length;i++){
//對ALL[I]元素的某些操作;
}
b) Var all=document.body.getElementsByTagsName(‘*’);
For(i in all){
//對ALL[I]元素的某些操作;
}
這次迭代過程中,i值也會分別等於length/item/namedItem這導致代碼中出現意外的錯誤;而hasOwnProperty()避免這個問題;如果對象的屬性或方法是韭繼承的、那麼hasOwnProperty()返回true;如果在for循環中使用了這種檢查,那麼循環將會跳過length這樣的屬性;length不是數組all的直系屬性,而是派生數組all的NamedNodeMap對象的繼承的屬性;
c) Var all=document.body.getElementsByTagsName(‘*’);
For(i in all){
If(all.hasOwnProperty){continue;}
//對ALL[I]元素的某些操作;
}
八、函數的調用和引用(不帶括號)
a) Var foo=exampleFunction; 與var foo=exampleFunction();
尾處沒有圓括號,賦值給變量的是函數本身,而非結果。帶圓括號的不會得到的想要的結果;
待續!如有疑問,請提出你的見解,一起分享。。