【发布时间】:2020-05-06 08:24:56
【问题描述】:
function printSeries() {
for (var i = 0; i < 10; i++) {
setTimeout(function () {
console.log(i);
}, 3000);
}
console.log('printing');
}
printSeries();
为什么打印值是 i 的 10 倍?堆栈为空后调用 SetTimeout 回调函数。它是否在其中存储了词法范围
【问题讨论】:
-
您的每次执行都将超时,因此 3 秒后全部打印,这就是它的方式。它不会取消它等待执行的执行
标签: javascript settimeout