1. 程式人生 > >《JavaScript語言精粹》學習筆記——附錄B.糟粕

《JavaScript語言精粹》學習筆記——附錄B.糟粕

作者的意思是儘量棄之不用的部分。

1、==

== 和 != 運算子只有在兩個運算時型別一致時,才能做出正確判斷,如果兩個運算數是不同型別,會強制轉換值的型別,有時會得到正確的結果,有時不會,因此永遠不要使用這個運算子,始終使用 === 和 !== 運算子,可以減少錯誤。

2、with 語句

with 語句本意是想用它來快捷訪問物件的屬性,但它的結果有時不可預料,應儘量避免使用它。

3、eval

eval 函式傳遞一個字串給 JavaScript 編譯器,並且執行其結果。eval 使效能降低,減弱程式的安全性,應儘量避免使用這種形式。

4、continue

一段程式碼通過重構移除 continue 後,效能會得到改善。

5、switch 穿越

應儘量不刻意使用 case 條件穿越,因為穿越是一個常見的錯誤來源,確很難通過檢視程式碼來發現錯誤。

6、缺少塊的語句

If、while、do 或 for 語句可以接受一個括在花括號中的程式碼塊,也可以接受單行語句。在寫單行語句時也儘量括在花括號中,避免帶來錯誤。

7、++ --

大多數的緩衝區溢位錯誤所造成的安全漏洞,都是由遞增和遞減運算子組成的程式碼引起的。不再使用遞增和遞減運算子,使程式碼也更為整潔。

8、位運算子

JavaScript 有著和 Java 相同的一套位運算子。由於執行環境沒有硬體的支援,JavaScript 執行位運算速度非常慢。在 JavaScript 程式中,& 非常容易被誤寫為 && 運算子。

9、function 語句對比 function 表示式

JavaScript 既有 function 語句也有 function 表示式

function foo () { }             // function 語句
var foo = function foo () { };  // function 表示式
儘量使用第二種形式,使程式碼容易理解。

10、型別的包裝物件

不要使用 new Boolean、new Number 或 new String。也儘量避免 new Object 和 new Array,可使用 { } 和 [ ] 來代替。

11、new 

new會帶來不會報錯的錯誤,因此根本不要去使用new。

12、void

在 JavaScript 裡,void 是一個運算子,它接收一個運算數並返回undefined,這並沒有什麼用,應避免使用它。