原题:
关于以下 JavaScript 代码说法正确的是
for(var i=0;i<5;i++) { setTimeout(function(){ console.log(i); },1000)}
思路:
setTimeout函数的作用是在经历1000ms后再执行一次function函数。for循环中,i从0到5一共经历了5次循环,也就是执行了5次setTimeout函数,此时i的值为5。
关键在于for循环的执行时间远小于1000ms,所以当i变成5后,第一次setTimeout函数才开始执行,此时打印出i的值为5,同理此后打印i的值都是5。