2016-10-14 14:14发布
for (var i=1;i<=5;i++) { setTimeout(function(){ console.log(i) },i*1000) } for循环语句是如何运行的呢?为什么会输出5个6呢?
通过上面的代码,可以看出只定义了一个变量 i ,只有在循环里面赋值为1~5,循环结束后是 6。而setTimeout中的代码是在循环之后执行的,所以输出的i是 6。而不是你所想的。因为 i 只有一个,不可能同时等于 1,2,3,4,5.
i
1~5
setTimeout
1,2,3,4,5
最多设置5个标签!
通过上面的代码,可以看出只定义了一个变量
i
,只有在循环里面赋值为1~5
,循环结束后是 6。而
setTimeout
中的代码是在循环之后执行的,所以输出的i
是 6。而不是你所想的。因为 i 只有一个,不可能同时等于
1,2,3,4,5
.一周热门 更多>