猿问

setTimeout匿名函数自执行 这个函数还会放到队列中么?

for(var i = 0; i < 5; i++) {

  setTimeout(() => { //----1
    console.log(i);
  }, 0)
}

for(var k = 10; k < 15; k++) {
setTimeout(function(k){ //匿名函数自执行 ---2

console.log(k);

}(k), 0)
}

第二个setTimeout中的自执行函数还会放到队列中么,如果是放到队列中,他怎么会先于队列中的//--1 执行呢### 题目描述

题目来源及自己的思路

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?


紫衣仙女
浏览 756回答 1
1回答

慕桂英546537

你知道什么是函数吗?这是函数:function(k){&nbsp;//匿名函数自执行&nbsp;---2 &nbsp;&nbsp;console.log(k); }这是函数调用:(function(k){&nbsp;//匿名函数自执行&nbsp;---2 &nbsp;console.log(k); })(k)下面这段代码:setTimeout(function(k){&nbsp;//匿名函数自执行&nbsp;---2 &nbsp;console.log(k); }(k),&nbsp;0) }相当于:function&nbsp;foo(k){&nbsp;console.log(k); } foo(k); setTimeout(undefined,&nbsp;0);&nbsp;//&nbsp;foo&nbsp;的返回值是&nbsp;undefined所以你说说&nbsp;setTimeout(undefined, 0)&nbsp;这句代码什么效果? 不存在函数, 更不存在放入任务队列了.
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答