回到课程

setTimeout 会显示什么?

重要程度: 5

下面代码中安排了一个 setTimeout 的调用,然后运行一个耗时的计算过程,且耗时超过 100 毫秒。

被调度的函数会在何时运行?

  1. 循环执行后。
  2. 循环执行前。
  3. 循环开始时。

alert 会在何时出现?

let i = 0;

setTimeout(() => alert(i), 100); // ?

// 假设这段代码运行时间超过 100 毫秒
for(let j = 0; j < 100000000; j++) {
  i++;
}

setTimeout 只在当前代码运行完毕之后才会执行。

所以 i 的取值为:100000000

let i = 0;

setTimeout(() => alert(i), 100); // 100000000

// 假设这段代码运行时间超过 100 毫秒
for(let j = 0; j < 100000000; j++) {
  i++;
}