Javascript Simple Optimizations
Javascript Simple Optimizations
//Javascript Simple Optimizations
var varName = "" → var a = ""
object["property"] → object.prototype
{"key":"var1"} → {key:"var1"}
'xi\'an' → "xi'an"
"I am " + "hot" → "I am hot"
a = new Object → a = {}
a = new Array → a = []
if(a) b() → a && b()
if(a) b(); else c() → a ? b() :c()
if(1) b(); else c() → b()
return 2 * 3; → return 6;
return undefined; → return;
var f = function(){}→ function f(){}
var a; var b; → var a,b;
?
1,總是使用var 聲明 變數。
2,特性檢測而非瀏覽器檢測。
一些代碼是寫來發現瀏覽器版本並基於使用者正使用的用戶端的對其執行不同行為。這個,總的來說,是一個非常糟的實踐。更好的方法是使用特性檢測,在使 用一個老瀏覽器可能不支援的進階的特性之前,首先檢測(瀏覽器的)是否有這個功能或特性,然後使用它。這單獨檢測瀏覽器版本來得更好,即使你知道它的性 能。你可以在 http://www.jibbering.com/faq/faq_notes/not_browser_detect.html找到一個深入討論這個問題的文章。
例子:element if (document.getElementById) {
var element = document.getElementById('MyId');
}
else {
alert('Your browser lacks the capabilities required to run this script!');
}
3,使用方括弧記法。當訪問由執行時決定或者包括要不能用”.”號訪問的對象屬性,使用方括弧記法。如果你不是一個經驗豐富的Javascript程式員,總是使用方括弧是一個不錯的做法對象的屬性由兩種固定的方法來訪問:”.”記法和”[ ]“方括弧記法:“.”號記法jsMyObject.property
“[ ]“方括弧記法jsMyObject["property"]
使用”.”號,屬性名稱是硬代碼,不能在執行時改變。使用”[ ]“方括弧,屬性名稱是一個通過計算屬性名稱而來的字串。字串要以是硬代碼,也可能是變數,甚至可以是一個調回一個字母串值的函數。 如果一個屬性名稱在執行產生,方括弧是必須,如果你有 “value1″, “value2″, 和 “value3″這樣的屬性,並且想利用變數 i=2來訪問