setTimeout 会显示什么?
重要性:5
在下面的代码中,有一个 setTimeout
调用被调度,然后运行一个繁重的计算,该计算需要超过 100 毫秒才能完成。
计划的函数将在何时运行?
- 循环之后。
- 循环之前。
- 循环开始。
alert
将显示什么?
let i = 0;
setTimeout(() => alert(i), 100); // ?
// assume that the time to execute this function is >100ms
for(let j = 0; j < 100000000; j++) {
i++;
}
任何 setTimeout
都会在当前代码执行完毕后才运行。
i
将是最后一个值:100000000
。
let i = 0;
setTimeout(() => alert(i), 100); // 100000000
// assume that the time to execute this function is >100ms
for(let j = 0; j < 100000000; j++) {
i++;
}