首頁 >web前端 >js教程 >javascript教學:關於if簡寫語句優化的方法_javascript技巧

javascript教學:關於if簡寫語句優化的方法_javascript技巧

WBOY
WBOY原創
2016-05-16 16:48:061347瀏覽

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語句你肯定不會陌生,或許你常使用它。

腳本之家給的例子:

複製程式碼 程式碼如下:

<script><BR>var i >var ii=(i>8)?100:9;<BR>alert(ii);<BR></script>

輸出結果:

100

二、使用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語句來進行處理,而上面的程式碼不僅簡潔有效,而且可閱讀性強。

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

【javascript技巧】if(x==null)簡寫

if(x==null)或if (typeof (x) == 'undefined')可以簡寫為if(!x),未經驗證。

反之if(x)表示x非空

判斷物件是否存在

複製代碼 代碼如下:
if(document.form1.softurl9){
//判斷是否有softurl9,防止js出錯
}

複製碼 程式碼如下:
if(document.getElementById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("urlsoftById("url
//判斷是否有softurl9,防止js出錯
}


補充:

javascript || && 簡寫 if

複製程式碼 程式碼如下:

').appendTo($(this).parent());
        }
    );  



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn