js中for循环输出值疑惑

var a = [];

for (var i = 0; i < 10; i++) {

  a[i] = function () {

    return console.log(i)

    // alert(i);

  };

}

a[1]()

// 10

代码如上所示

想不明白,为什么输出的不是9,而是10
不是for循环10次,i的值从09吗?


慕田峪4524236
浏览 766回答 1
1回答

一只甜甜圈

首先为什么不是9是10 9的那次循环结束不是要i++吗。i就等于10了呀!第二,a数组里面放的是函数,函数只有在调用的时候才会被执行。你在for循环中根本就没有呗执行啊只有在最后a[1]()这才被调用执行,此时i为10,所以是10
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript