首页 > 试题广场 >

console.log('script start'); s

[不定项选择题]
console.log('script start');

setTimeout(() => {
  console.log('setTimeout 1');

  Promise.resolve().then(() => {
    console.log('promise 1 inside setTimeout 1');
  });

}, 0);

Promise.resolve().then(() => {
  console.log('promise 2');

  setTimeout(() => {
    console.log('setTimeout 2 inside promise 2');
  }, 0);
});

setTimeout(() => {
  console.log('setTimeout 3');

  Promise.resolve().then(() => {
    console.log('promise 3 inside setTimeout 3');
  });

}, 100);

console.log('script end');
关于上面这段代码说法正确的有()
  • ‘promise 3 inside setTimeout 3’ 最后打印出来 
  • 'script end'最后打印出来 
  • 先打印的‘promise 2’后面再打印的‘setTimeout 1’ 
  • 先打印的‘promise 1 inside setTimeout 1’后面再打印的‘setTimeout 1’ 
script start
script end
promise 2
setTimeout 1
promise 1 inside setTimeout 1
setTimeout 2 inside promise 2
setTimeout 3
promise 3 inside setTimeout 3
发表于 2025-11-03 15:20:44 回复(0)
  1. 步代码:立即执行,按顺序输出
  1. 微任务(Microtask):Promise.then() 等,优先级高于宏任务
  1. 宏任务(Macrotask):setTimeout、setInterval 等
  1. 事件循环:先执行所有微任务,再执行一个宏任务,然后重复
发表于 2025-10-25 15:50:10 回复(0)
then内部的settimeout2不是应该加到宏任务队列里面吗,那不是应该排在settimeout3后面吗,那最后执行的应该是settimeout2呀。有没有大佬解释一下呀
发表于 2025-08-21 23:16:38 回复(1)