欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js中if語句的幾種優(yōu)化代碼寫法

 更新時(shí)間:2011年03月12日 19:15:16   作者:  
UglifyJS是一個(gè)對(duì)javascript進(jìn)行壓縮和美化的工具,在它的文檔說明中,我看到了幾種關(guān)于if語句優(yōu)化的方法。
盡管我還沒使用它去做一些嘗試性的測(cè)試,但從這里可以看到它的確對(duì)js作了美化的工作。也許有人認(rèn)為if語句就那么簡(jiǎn)單,能優(yōu)化到什么程度?但是看看以下的幾種方式,你也許會(huì)改變看法。

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

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

對(duì)于以上使用三元操作符來優(yōu)化if語句你肯定不會(huì)陌生,或許你經(jīng)常使用它。

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

復(fù)制代碼 代碼如下:

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

老實(shí)說,我并沒有這樣去寫過代碼,這種寫法我在學(xué)習(xí)《鳥哥的 Linux 私房菜》時(shí)看到過,但我并沒想到在js中實(shí)現(xiàn)它。

三、省略大括號(hào){}

復(fù)制代碼 代碼如下:

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

這種寫法你我都很熟悉,但我建議在代碼優(yōu)化的時(shí)候這樣做,或者交給UglifyJS幫你去解決。畢竟少一個(gè)大括號(hào),代碼的可閱讀性并不高。

寫到這里,我想到j(luò)Query之父在《精通 JavaScript》中的一個(gè)獲取HTML元素屬性的方法。
復(fù)制代碼 代碼如下:

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

如果我們不這樣寫,可能我們需借助于兩個(gè)if語句來進(jìn)行處理,而上面的代碼不僅簡(jiǎn)潔有效,而且可閱讀性強(qiáng)。

仔細(xì)想想,好些時(shí)候我們都能找到解決問題的有效途徑,但關(guān)鍵在于我們是否用心去尋找一種更好的途徑。

相關(guān)文章

  • 簡(jiǎn)單聊聊JavaScript的事件循環(huán)機(jī)制

    簡(jiǎn)單聊聊JavaScript的事件循環(huán)機(jī)制

    前端開發(fā)的童鞋應(yīng)該都知道,JavaScript是一門單線程的腳本語言,這就意味著JavaScript 代碼在執(zhí)行的時(shí)候,只有一個(gè)主線程來執(zhí)行所有的任務(wù),同一個(gè)時(shí)間只能做同一件事情,這篇文章主要給大家介紹了關(guān)于JavaScript事件循環(huán)機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • javascript使用遞歸算法求兩個(gè)數(shù)字組合功能示例

    javascript使用遞歸算法求兩個(gè)數(shù)字組合功能示例

    這篇文章主要介紹了javascript使用遞歸算法求兩個(gè)數(shù)字組合功能,結(jié)合實(shí)例形式分析了JS基于遞歸算法的數(shù)組遍歷、判斷、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • JavaScript可否多線程? 深入理解JavaScript定時(shí)機(jī)制

    JavaScript可否多線程? 深入理解JavaScript定時(shí)機(jī)制

    JavaScript的setTimeout與setInterval是兩個(gè)很容易欺騙別人感情的方法,因?yàn)槲覀冮_始常常以為調(diào)用了就會(huì)按既定的方式執(zhí)行, 我想不少人都深有同感
    2012-05-05
  • JS判斷點(diǎn)是否在線段上的代碼

    JS判斷點(diǎn)是否在線段上的代碼

    這篇文章主要介紹了JS判斷點(diǎn)是否在線段上的相關(guān)資料,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • 探索Javascript中this的奧秘

    探索Javascript中this的奧秘

    本文介紹了JavaScript中的this關(guān)鍵字在各種情況下的含義,實(shí)例都很簡(jiǎn)單,這樣更能有助于加深理解。雖然這只是js中一個(gè)很小的概念,但借此我們可以了解js中函數(shù)的執(zhí)行環(huán)境,充分掌握this的相關(guān)知識(shí)有助于我們?cè)诰帉懨嫦驅(qū)ο蟮腏avaScript程序時(shí)能夠游刃有余。
    2016-12-12
  • js實(shí)現(xiàn)窗口全屏示例詳解

    js實(shí)現(xiàn)窗口全屏示例詳解

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)窗口全屏示例,包含全屏事件、退出全屏事件等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 解決JS內(nèi)存泄露之js對(duì)象和dom對(duì)象互相引用問題

    解決JS內(nèi)存泄露之js對(duì)象和dom對(duì)象互相引用問題

    這篇文章主要介紹了解決JS內(nèi)存泄露之js對(duì)象和dom對(duì)象互相引用問題,需要的朋友可以參考下
    2017-06-06
  • 微信小程序 獲取手機(jī)號(hào) JavaScript解密示例代碼詳解

    微信小程序 獲取手機(jī)號(hào) JavaScript解密示例代碼詳解

    這篇文章主要介紹了微信小程序 獲取手機(jī)號(hào) JavaScript解密的示例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • 基于JavaScript實(shí)現(xiàn)百葉窗動(dòng)畫效果不只單純flas可以實(shí)現(xiàn)

    基于JavaScript實(shí)現(xiàn)百葉窗動(dòng)畫效果不只單純flas可以實(shí)現(xiàn)

    看到這種百葉窗效果的動(dòng)畫,以為是用flash做的,下面通過本文給大家介紹基于JavaScript實(shí)現(xiàn)百葉窗動(dòng)畫效果,需要的朋友參考下吧
    2016-02-02
  • 微信小程序多文件上傳 Tdesign及導(dǎo)入失敗問題

    微信小程序多文件上傳 Tdesign及導(dǎo)入失敗問題

    小程序文件上傳還是有點(diǎn)麻煩的,其實(shí)主要還是小程序?qū)Φ慕涌谟兄T多的不便,比如說,文件不能批量提交,只能一個(gè)個(gè)的提交,小程序的上傳需要專門的接口,這篇文章主要介紹了微信小程序多文件上傳 Tdesign及導(dǎo)入失敗問題,需要的朋友可以參考下
    2023-11-11

最新評(píng)論