<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    我是FE,也是Fe

    前端來源于不斷的點滴積累。我一直在努力。

    統(tǒng)計

    留言簿(15)

    閱讀排行榜

    評論排行榜

    javascript中循環(huán)最佳實踐

    javascript中的循環(huán)或許大家都會,但是真正去研究,發(fā)現(xiàn)還是有一些區(qū)別。
    通常的寫法:
    var anchors = document.getElementsByTagName("a");

    for (i=0;i<anchors.length;i++){
        
    // do some stuff here
    }
    上面的代碼用jslint檢查時會有很多的修改建議。

    加上空格,提高可讀性,jslint建議在for的操作語句中加上空格,下面是加上空格后的代碼:
    var anchors = document.getElementsByTagName("a");

    for (i = 0; i < anchors.length; i++) {
        
    //         ^                                ^       ^
    }

    i聲明為局部變量:
    var anchors = document.getElementsByTagName("a");

    for (var i = 0; i < anchors.length; i++) {
        
    // do some stuff here
    }
    jslint的解釋是,變量不加上var  聲明,將做為全局變量。全局變量不是好的代碼。

    不要使用++,--之類的操作符
    在jslint上面的建議是這樣的 http://www.jslint.com/lint.html#inc :
    The ++ (increment) and — (decrement) operators have been known to contribute to bad code by encouraging excessive trickiness. They are second only to faulty architecture in enabling to viruses and other security menaces.

    ++,--視為程序的小技巧,但是并不是鼓勵這樣做,初學者很容易在這個上面困惑(大學教材/考試上最喜歡糾結這個了),其次就是會導致安全問題(這種情況沒見過)。
    基于上面的建議:代碼修改為:
    var anchors = document.getElementsByTagName("a");

    for (var i = 0; i < anchors.length; i += 1) {
        
    // do some stuff here
    }

    不要每次循環(huán)時計算數(shù)組的長度,i<anchors.length,會導致每次判斷循環(huán)是否停止時需要計算一次anchors的長度,這樣在數(shù)組比較大的時候會產(chǎn)生性能問題。
    var anchors = document.getElementsByTagName("a");

    for (var i = 0j = anchors.length; i < j; i += 1) {
        
    // do some stuff here
    }

    上面的代碼使用一個變量j緩存數(shù)組長度,提高了性能。

    使用遞減代替遞增
    上面我們已經(jīng)使用一個變量緩存數(shù)組長度,但是,我們甚至可以不需要緩存數(shù)組長度,使用變量遞減。
    var anchors = document.getElementsByTagName("a");

    for (var i = anchors.length; i > 0; i -= 1) {
        
    // do some stuff here
    }

    上面的代碼,既不需要每次循環(huán)都判斷長度,也不需要單獨使用一個變量緩存數(shù)組長度。

    一個經(jīng)常寫的循環(huán)學問還不小,掌握這些小技巧,可以寫出更漂亮的javascript for循環(huán) 代碼。

    后面還有人喜歡這么寫:
    var i = anchors.length;
    while (i--)
    {
    // do some stuff here
    }
    這種寫法也是比較精簡,平時用的比較少。

    相關資料:
    原文鏈接:http://www.impressivewebs.com/javascript-for-loop/
    大牛Douglas Crockford 的jslint建議:http://www.jslint.com/lint.html



    posted on 2010-12-08 00:10 衡鋒 閱讀(1507) 評論(0)  編輯  收藏 所屬分類: Web開發(fā)

    主站蜘蛛池模板: 亚洲精品制服丝袜四区| 亚洲综合在线一区二区三区| 2021久久精品免费观看| 亚洲国产AV一区二区三区四区| 免费很黄很色裸乳在线观看| 无码国产精品一区二区免费3p| 国产成人亚洲综合一区| 亚洲日韩在线中文字幕第一页| 69视频在线是免费观看| 国产精品亚洲专区在线播放| 久久精品国产亚洲| 成年女人永久免费观看片| 日韩电影免费在线观看网站| 亚洲天堂免费在线| 狠狠色伊人亚洲综合成人| 国产精品成人免费视频网站京东| 亚洲精品黄色视频在线观看免费资源| 中文字幕亚洲综合久久2| mm1313亚洲精品无码又大又粗| 免费污视频在线观看| 免费无码AV一区二区| 亚洲狠狠狠一区二区三区| 国产精品V亚洲精品V日韩精品| 永久免费av无码网站韩国毛片 | 国产亚洲免费的视频看| 亚洲国产欧美国产综合一区 | 三级网站免费观看| 午夜亚洲WWW湿好爽 | 一级做a爱过程免费视频高清| 亚洲va在线va天堂va手机| 亚洲中文字幕无码不卡电影| 成人性生免费视频| 日本黄网站动漫视频免费| a级毛片黄免费a级毛片| 福利片免费一区二区三区| 国产91在线|亚洲| 2022年亚洲午夜一区二区福利| 久久亚洲精品无码观看不卡| 国产女高清在线看免费观看 | 亚洲国产精品VA在线观看麻豆| 亚洲?v女人的天堂在线观看|