為JavaScript做一點效能小提升吧!
本文列出了24條能讓你的程式碼編寫過程更輕鬆有效率的建議。也許您還是JavaScript初學者,剛寫完自己的Hello World,那麼這裡有很多對您的工作將十分有用的小貼士;也許有些技巧您已經知道,那就試試快速瀏覽一下,看能不能發現一點新東西吧!
註:本文多次使用Firebug的console對象,請參考Firebug Console API 。關於firebug的更詳細介紹,請猛擊這裡。
1. 用=== 取代== JavaScript裡面有兩種不同的相等運算子:===|!== 和==|!=。相較之下,前者更值得推薦。請盡量使用前者。
“如果兩個比較物件有著相同的類型和值,===傳回true,!==傳回false。”
– JavaScript: The Good Parts
不過,如果使用==和!=,在操作不同資料型別時, 你可能會遇到一些意想不到的問題。在進行相等判斷前,JavaScript會試圖將它們轉換為字串、數字或Boolean量。
2. 避免使用Eval函數
Eval函數把一個字符串當作參數,並且把字符串當作JavaScript語句執行,傳回結果(參考)。
此函數不僅會降低你腳本的執行效率,而且還大大增加了安全風險,因為它賦予了作為文字的參數太大的權利。千萬別用!
3. 不要使用快速寫法
技術上說,你可以省略掉大部分花括弧和句尾分號,絕大多數瀏覽器都能正確執行以下語句:
.if(someVariableExists)
x = false
不過,如果是這樣的呢:
.if(someVariableExists)
x = false
anotherFunctionCall();
你可能會認為它和下面的語句相等:
if(someVariableExists) {
x = false;
anotherFunctionCall();
}
不幸的是,事實並非如此。現實情況是它等價於:
如您所注意到的,再漂亮的縮排也不能代替這華麗的花括弧。在所有情況下都請寫清楚花括號和句尾分號。在只有一行語句的時候能偶爾省略掉,雖然下這麼做也是極度不被推薦的:
if(2 + 2 === 4) return 'nicely done';
多考慮下將來吧,孩子假設,在將來的開發過程中,你需要為這個if 語句添加更多的命令呢?到時候你還不是得把括號給加上?
if(someVariableExists) {
x = false;
}
anotherFunctionCall();