关于settimeout的问题

来源:4-9 event-loop - 总结

寂寞追不上我

2018-03-13

请问下老师

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

setTimeout((function(i){

console.log(i)

})(i), i*1000);

}

settimeout 第一个参数传递立即执行函数,在被放入栈之后也会立即执行而不会等待延迟执行?

写回答

2回答

精壮的成年男子

2018-03-13

setTimeout的第一个参数可以接收函数或者是用字符串代替function。而这里传入的立即执行函数会立即执行,其返回值是undefined,相当于setTimeout(undefined, i*1000),它不会进入等待执行的队列,并且会报错。 所以会立即输出01234

1
3
寂寞追不上我
非常感谢!
2018-03-13
共3条回复

双越

2018-03-13

是否立即执行,那得看 setTimeout 第二个参数啊,即延期时间

0
2
双越
回复
寂寞追不上我
首先,setTimeout 的第一个参数必须是一个函数,不能是 undefined
2018-03-13
共2条回复

前端跳槽必备 一线互联网公司高级前端JavaScript面试

视频讲解前端面试中的JS高级知识点,扩展JS知识深度,从容面试

1621 学习 · 218 问题

查看课程