for 循环的 四个小问题

Question 1

// for 循环的基本操作, 打印 0 1
for(var i = 0; i < 2; i++) {
  console.log(i)  // 0 1
}

Question 2

// 在 for 循环中 只有一个 i, 由于异步, 所以先 for 循环 ok, 再打印 2 2
for(var i = 0; i < 2; i++) {
  setTimeout(() => {
    console.log(i) // 2 2
  })
}

Question 3

for(let i = 0; i < 2; i++) {
  setTimeout(() => {
    console.log(i) // 0 1
  })
}
/**
  * ES6 中的 let 使 for 循环几次有几个 i
  * 进入循环 复制变量 let = i  ==> let i = _i 相当于一个快照
  * for( let i = 0; let i = _i; i < 2; i++), 在括号中完成了变量 i
  */

Question 4

// 2333 后打印 0
for(
  // 单独的作用域, 只代表 i 的初始值
  let i = (setTimeout( ()=> console.log(i), 2333), 0);  // 0
  // 第二部分 声明 一个新的 i
  i < 2;
  i++
) {
  console.log(i)  // 0 1
}

猜你喜欢

转载自blog.csdn.net/weixin_34033624/article/details/87562467