您好,登錄后才能下訂單哦!
if語句的幾種優化是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
UglifyJS是一個對javascript進行壓縮和美化的工具,在它的文檔說明中,我看到了幾種關于if語句優化的方法。
盡管我還沒使用它去做一些嘗試性的測試,但從這里可以看到它的確對js作了美化的工作。也許有人認為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語句來進行處理,而上面的代碼不僅簡潔有效,而且可閱讀性強。
仔細想想,好些時候我們都能找到解決問題的有效途徑,但關鍵在于我們是否用心去尋找一種更好的途徑。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。