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)
这句代码什么效果? 不存在函数, 更不存在放入任务队列了.
添加回答
举报
0/150
提交
取消