當(dāng)js中的for循環(huán)遇到延時器或者定時器時需要注意的問題

image.png

當(dāng)你在for循環(huán)里寫if判斷,再加延時器或者定時器時百拓,一定要保存當(dāng)前的i的值,再做處理晰甚,否則你拿到的i的值會是for循環(huán)里最大的那個衙传;

for (var i = 0; i < 10; i++) {  
            if(i == 5){  
                setTimeout(aa,2000);  
                function aa(){  
                    console.log( "i="+i);  
                }  
            }  
        }  //10

  for (var i=0; i<5;i++) { 
            
            (function(){ //5

                setTimeout(function(){  
                    console.log(i)
                },i*1000)
            })(i);
        }


for (var i=0; i<5;i++) { 
            
            (function(){ 
        var k=i;
                setTimeout(function(){  
                    console.log(k)
                },i*1000)
            })(i);
        }


你們覺得會打印出i的值是幾?
最終結(jié)果會是10厕九!
延時器換做定時器蓖捶, 最終結(jié)果也是一樣的;
那么為什么呢扁远?
js讀取代碼是從上向下讀取的俊鱼,當(dāng)它讀取到i滿足if語句的時候并不是停止了刻像,還會繼續(xù)做循環(huán)判斷;而此時if語句里面是一個延時器并闲,當(dāng)延時器的延時時間結(jié)束要調(diào)用aa函數(shù)的時候细睡,for循環(huán)已經(jīng)循環(huán)結(jié)束,而此時的i已經(jīng)變?yōu)?0帝火;
所以打印出來i的值就會是10溜徙;

那么怎么解決這個問題呢?看代碼

var j = null;  
        for (var i = 0; i < 10; i++) {  
            if(i == 5){  
                j = i;  
                setTimeout(aa,2000);  
                function aa(){  
                    console.log( "i="+j);  
                }  
            }  
        }  
//         var number=50;
//         var obj={
//          number:60,
//          getnum:function(){
//              var number=70;
//              return this.number
//          }
//         }
//        console.log(obj.getnum()) //60 obj
//        console.log(obj.getnum.call()) //50  window
//        console.log(obj.getnum.call({number:20})) //20

這樣打印出來的就是我們想要的結(jié)果了犀填,沒錯就是5蠢壹;
原理就是當(dāng)滿足if語句時,我們用一個變量把當(dāng)前i的值保存下來九巡;

循環(huán)

    // tip 遍歷下標(biāo)
    $('.m25-x-tpp2 .m25-x-ulcom li').each( function(i, e){ $(this).attr("fenge",i) });

js
https://blog.csdn.net/wxl1555/article/details/53719659
call
https://blog.csdn.net/ganyingxie123456/article/details/70855586

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末知残,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子比庄,更是在濱河造成了極大的恐慌求妹,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件佳窑,死亡現(xiàn)場離奇詭異制恍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)神凑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門净神,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人溉委,你說我怎么就攤上這事鹃唯。” “怎么了瓣喊?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵竟终,是天一觀的道長挪丢。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么崎淳? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任洛巢,我火速辦了婚禮通铲,結(jié)果婚禮上旺矾,老公的妹妹穿的比我還像新娘。我一直安慰自己逗概,他們只是感情好弟晚,可當(dāng)我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般卿城。 火紅的嫁衣襯著肌膚如雪淑履。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天藻雪,我揣著相機(jī)與錄音秘噪,去河邊找鬼。 笑死勉耀,一個胖子當(dāng)著我的面吹牛指煎,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播便斥,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼至壤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了枢纠?” 一聲冷哼從身側(cè)響起像街,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晋渺,沒想到半個月后镰绎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡木西,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年畴栖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片八千。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡吗讶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出恋捆,到底是詐尸還是另有隱情照皆,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布沸停,位于F島的核電站膜毁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏星立。R本人自食惡果不足惜爽茴,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一葬凳、第九天 我趴在偏房一處隱蔽的房頂上張望绰垂。 院中可真熱鬧,春花似錦火焰、人聲如沸劲装。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽占业。三九已至绒怨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谦疾,已是汗流浹背南蹂。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留念恍,地道東北人六剥。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像峰伙,于是被迫代替她去往敵國和親疗疟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • .bat腳本基本命令語法 目錄 批處理的常見命令(未列舉的命令還比較多瞳氓,請查閱幫助信息) 1策彤、REM 和 :: 2...
    慶慶慶慶慶閱讀 8,100評論 1 19
  • 個人學(xué)習(xí)批處理的初衷來源于實際工作;在某個迭代版本有個BS(安卓手游模擬器)大需求匣摘,從而在測試過程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,725評論 0 11
  • 奧斯卡獎出爐了音榜!小眾同志電影《請以你的名字呼喚我》獲得了最佳改編劇本獎必搞。在麥子的強(qiáng)烈推薦下看了這部電影。前面部分印...
    葉況閱讀 1,191評論 14 56
  • 淺淺的河沖著靜靜的沙我輕輕捧一捧,緩緩流失指縫心輕靈的跳躍梅割,踩出淡淡的腳窩一點點沁滿霜第,歲月輕逝的甘露 我靜立人來人...
    夏爅閱讀 231評論 13 9
  • 現(xiàn)在凌晨三點,而我覺得并且肯定双仍,此時應(yīng)該有很多人失眠枢希,如我一般無聊者大有人在。 或者黑夜中噼里啪啦打著手機(jī)朱沃,或看小...
    幽小窗閱讀 664評論 20 17