|
一、使用常見的三元操作符 復(fù)制代碼 代碼如下:
if (foo) bar(); else baz(); ==> foo?bar():baz(); if (!foo) bar(); else baz(); ==> foo?baz():bar(); if (foo) return bar(); else return baz(); ==> return foo?bar():baz(); 對于以上使用三元操作符來優(yōu)化if語句你肯定不會陌生,或許你經(jīng)常使用它。 二、使用and(&&)和or(||)運算符 復(fù)制代碼 代碼如下:
if (foo) bar(); ==> foo&&bar(); if (!foo) bar(); ==> foo||bar(); 老實說,我并沒有這樣去寫過代碼,這種寫法我在學(xué)習(xí)《鳥哥的 Linux 私房菜》時看到過,但我并沒想到在js中實現(xiàn)它。 三、省略大括號{} 復(fù)制代碼 代碼如下:
if (foo) return bar(); else something(); ==> {if(foo)return bar();something()} 這種寫法你我都很熟悉,但我建議在代碼優(yōu)化的時候這樣做,或者交給UglifyJS幫你去解決。畢竟少一個大括號,代碼的可閱讀性并不高。 寫到這里,我想到j(luò)Query之父在《精通 JavaScript》中的一個獲取HTML元素屬性的方法。 復(fù)制代碼 代碼如下:
function getAttr(el, attrName){ var attr = {'for':'htmlFor', 'class':'className'}[attrName] || attrName; }; 如果我們不這樣寫,可能我們需借助于兩個if語句來進(jìn)行處理,而上面的代碼不僅簡潔有效,而且可閱讀性強(qiáng)。 仔細(xì)想想,好些時候我們都能找到解決問題的有效途徑,但關(guān)鍵在于我們是否用心去尋找一種更好的途徑。 |
|
|
來自: 緣夢書摘 > 《JavaScript》