鍍金池/ 問(wèn)答/HTML/ 循環(huán)和定時(shí)器的問(wèn)題

循環(huán)和定時(shí)器的問(wèn)題

  1. 都知道如果在循環(huán)中設(shè)置一個(gè)定時(shí)器,用var且不將內(nèi)部函數(shù)改為立即執(zhí)行函數(shù)的情況下,會(huì)循環(huán)打印出5

         for(var i = 0;i<5;i++){
              setInterval(function(){
                  console.log(i,"i")
              },200);
          }
    結(jié)果:

    圖片描述

  2. 這種情況會(huì)一直打印出0、1、2、3、4、0、1、2、3....

      for(var i = 0;i<5;i++){
           (function(i){
              setInterval(function(){
              console.log(i,"i")
          },200);
          })(i)
      }
    結(jié)果:

    圖片描述

  3. 這種寫法只打印一次0、1、2、3、4,為什么?

    for(var i = 0;i<5;i++){
        setInterval(function(i){
            console.log(i,"i")
        }(i),200);
    }
    結(jié)果

    圖片描述

回答
編輯回答
何蘇葉

因?yàn)闆](méi)有callback

let a = function(i){
    console.log(i,"i")
}(i)

a;//undefined
2018年5月22日 23:53
編輯回答
伴謊

第三種是因?yàn)槟銈魅雜etInterval的第一個(gè)參數(shù)其實(shí)是一個(gè)函數(shù)的執(zhí)行結(jié)果,并不是一個(gè)函數(shù)

2017年11月19日 12:51