为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

紫衣仙女 2018-09-02 11:59:30
for(var i = 0; i < 5; i++) {  setTimeout(() => { //----1     console.log(i);   }, 0) }for(var k = 10; k < 15; k++) {setTimeout(function(k){ //匿名函数自执行 ---2console.log(k);}(k), 0)}第二个setTimeout中的自执行函数还会放到队列中么,如果是放到队列中,他怎么会先于队列中的//--1 执行呢### 题目描述题目来源及自己的思路相关代码// 请把代码文本粘贴到下方(请勿用图片代替代码)你期待的结果是什么?实际看到的错误信息又是什么?
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

你知道什么是函数吗?

这是函数:

function(k){ //匿名函数自执行 ---2
  console.log(k);
}

这是函数调用:

(function(k){ //匿名函数自执行 ---2
 console.log(k);
})(k)

下面这段代码:

setTimeout(function(k){ //匿名函数自执行 ---2
 console.log(k);
}(k), 0)
}

相当于:

function foo(k){ console.log(k);
}

foo(k);

setTimeout(undefined, 0); // foo 的返回值是 undefined

所以你说说 setTimeout(undefined, 0) 这句代码什么效果? 不存在函数, 更不存在放入任务队列了.


查看完整回答
反对 回复 2018-09-02
  • 1 回答
  • 0 关注
  • 751 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信