摘要:本文總結了則的最佳實踐,希望對各位爪哇國編劇有用。使用有兩種等值運算符,分別是和,以及和。比較兩個值的時候,請使用前者,避免討厭的強制類型轉換帶來預料之外的結果。下只提供無強制類型轉換的別名和別名,不用頭疼選哪種。
本文總結了20則JavaScript的最佳實踐,希望對各位爪哇國編劇有用。(順帶推銷下CoffeeScript)
。
1. 使用 ===JavaScript有兩種等值運算符,分別是===和==,以及!==和!=。比較兩個值的時候,請使用前者,避免JavaScript討厭的強制類型轉換帶來預料之外的結果。
CoffeeScript下只提供無強制類型轉換的==(別名is)和!=(別名isnt),不用頭疼選哪種。
2. eval很邪惡eval讓我們將字符串作為參數執行,這是非常強大的特性。然而,eval會大幅降低腳本的性能,也會引起安全問題。除非你打算用JavaScript寫一個編譯器,還是對eval敬而遠之的好。
3. 少打字多費腦省掉一些花括號,大多數瀏覽器仍然能理解,例如:
if(someVariableExists) x = false
然而,復雜一點的代碼就可能帶來問題:
if(someVariableExists) x = false anotherFunctionCall();
你想表達的也許是:
if(someVariableExists) { x = false; anotherFunctionCall(); }
然而實際上等價于:
if(someVariableExists) { x = false; } anotherFunctionCall();
所以,還是乖乖地寫花括號吧,這能為你省去無數麻煩。
如果你真那么討厭花括號,還是投入CoffeeScript的懷抱吧:
if someVariable? x = false if someVariable? x = false anotherFunctionCall()
同理,大多數瀏覽器允許你省略分號:
var someItem = "some string" function doSomething() { return "something" }
這和省略花括號一樣糟糕,還是老實一點好:
var someItem = "some string"; function doSomething() { return "something"; }
或者,投奔CoffeeScript吧,不用分號了:
someItem = "some string" doSomething = -> "something"
函數的寫法是不是也很帥?直接定義一個匿名函數,然后把它賦給一個變量即可。
4. 使用JSLintJSLint是一款非常棒的調試器,它會迅速找出代碼中的問題,包括語法錯誤、編碼風格和程序結構問題。
5. 將腳本放在頁面的底部腳本加載是阻塞的,腳本加載并執行完之后,瀏覽器不能繼續渲染下面的內容。因此,用戶被迫等待更長時間。如果你的JavaScript腳本只是用來增強效果,那么請將它放在頁面的最后:
And now you know my favorite kinds of corn.