js中if語句的幾種優化代碼寫法


UglifyJS是一個對javascript進行壓縮和美化的工具,在它的文檔說明中,我看到了幾種關於if語句優化的方法、

一、使用常見的三元操作符 

復制代碼 代碼如下:

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(); 

對於以上使用三元操作符來優化if語句你肯定不會陌生,或許你經常使用它。 

二、使用and(&&)和or(||)運算符 

復制代碼 代碼如下:

if (foo) bar(); ==> foo&&bar(); 
if (!foo) bar(); ==> foo||bar(); 

老實說,我並沒有這樣去寫過代碼,這種寫法我在學習《鳥哥的 Linux 私房菜》時看到過,但我並沒想到在js中實現它。 

三、省略大括號{} 

復制代碼 代碼如下:

if (foo) return bar(); else something(); ==> {if(foo)return bar();something()} 

這種寫法你我都很熟悉,但我建議在代碼優化的時候這樣做,或者交給UglifyJS幫你去解決。畢竟少一個大括號,代碼的可閱讀性並不高。 

寫到這里,我想到jQuery之父在《精通 JavaScript》中的一個獲取HTML元素屬性的方法。 
復制代碼 代碼如下:

function getAttr(el, attrName){ 
var attr = {'for':'htmlFor', 'class':'className'}[attrName] || attrName; 
}; 

如果我們不這樣寫,可能我們需借助於兩個if語句來進行處理,而上面的代碼不僅簡潔有效,而且可閱讀性強。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM