一道有关setTimeout的面试题
来源:互联网 发布:爱情观知乎 编辑:程序博客网 时间:2024/06/05 06:06
setTimeout 只执行一次 可用来实现js代码异步执行
setInterval 循环执行console.log((function(){ console.log(1); setTimeout(function(){ console.log(2)},1000)setTimeout(function(){console.log(3)},0);setTimeout(function(){console.log(4)},0); console.log(5)})())
答案是什么呢? 答案是:
1 5 undefined 3 4 2
下面解析一下此题:
首先要储备的知识点是: 1、setTimeout 中的时间是 以 “ms” 为单位的, 而且 即便是 0ms 也是有时间的,因为setTimeout中的时间是有时间误差的; 2、如果函数没有 return 返回值, 那么 就会 出现undefined ,不要问为啥出现undefined, 我也不知道!
这一点就能判断出 一部分答案了: 1 5 3 4 2
但是为啥还有个 “undefined” ?
因为最外层的 console.log() 里面包含的是一个立即执行函数IIFE (Immediately Invoked Function Expression) ,居然没有return返回值,那肯定是undefined的了!
但是为啥要在“1 5 ”的后面呢?
因为“return xxxxx” 一般是写在函数的最后的,不然所以的console不就都不执行了嘛!可是即便写在最后,上面有setTimeout,那也得执行在setTimeout之前,但幸亏没有写return 不然,那几个setTimeout也不会执行的啦!
so 最后的答案想必我就不多嘴了吧!
最后声明: 如有错误,欢迎批评指出!再次谢过~~~
阅读全文
0 0
- 一道有关setTimeout的面试题
- 由一道面试题引发的setTimeout的用法思考
- 一道JavaScript面试题(setTimeout)
- 一道面试题引发的有关随机数的思考(1)
- 一道面试题引发的有关随机数的思考(2)
- 一道面试题引发的有关随机数的思考(3)
- 一道面试题引发的有关随机数的思考(4)
- 一道面试题引发的有关随机数的思考(5)
- 一道面试题引发的有关随机数的思考(6)
- 一道面试题引发的有关随机数的思考(7)
- 一道面试题引发的有关随机数的思考(8)
- 一道跟静态成员有关的面试题
- 黑马程序员_有关构造方法的一道面试题
- 有关运算符优先级的一道面试题
- 一道面试题引发的面壁:认识JavaScript的settimeout和异步
- 中兴的一道面试题
- 一道面试题的思考
- 微软的一道面试题
- 2017 计蒜之道 初赛 第三场
- Linux配置jdk
- UESTC 1642 老当益壮, 宁移白首之心? 欧拉回路、Fleury算法
- 【Window】win10开机锁屏界面背景更换
- 场景在Game 中可见,但在Scene中看不见
- 一道有关setTimeout的面试题
- Python三种数据结构
- ajax实战篇---城市select联动----json交互
- 自定义MVC
- 【iOS】基本控件:文本输入框、开关、分段控件、滑块与输入键盘隐藏的问题
- android ios opus语音编码压缩库编译
- sftp服务器搭建
- 容斥原理
- USACO Section 1.2 Name That Number