javascript教程:關於if語句最佳化的方法

來源:互聯網
上載者:User

文章簡介:UglifyJS是一個對javascript進行壓縮和美化的工具,在它的文檔說明中,我看到了幾種關於if語句最佳化的方法。儘管我還沒使用它去做一些嘗試性的測試,但從這裡可以看到它的確對js作了美化的工作。也許有人認為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(); ==> foobar();

老實說,我並沒有這樣去寫過代碼,這種寫法我在學習《鳥哥的 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語句來進行處理,而上面的代碼不僅簡潔有效,而且可閱讀性強。

仔細想想,好些時候我們都能找到解決問題的有效途徑,但關鍵在於我們是否用心去尋找一種更好的途徑。

原文:http://www.denisdeng.com/?p=1094



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.