setTimeout 深入分析其机制
来源:互联网 发布:大疆无人机 知乎 编辑:程序博客网 时间:2024/04/24 21:36
for (var i = 0;i<=3;i++){ setTimeout(function (){ console.log(i); },0);}
此题输出内容是什么?
setTimeout
为 Window
对象方法,用来注册在指定的事件之后单次或重复调用的函数。
setTimeout的作用是将代码推迟到指定时间执行,如果指定时间为0,即setTimeout(f,0),那么会立刻执行吗?
答案是不会。因为上一段说过,必须要等到当前脚本的同步任务和“任务队列”中已有的事件,全部处理完以后,才会执行setTimeout指定的任务。也就是说,setTimeout的真正作用是,在“消息队列”的现有消息的后面再添加一个消息,规定在指定时间执行某段代码。setTimeout添加的事件,会在下一次EventLoop执行。
setTimeout(f,0)将第二个参数设为0,作用是让f在现有的任务(脚本的同步任务和“消息队列”指定的任务)一结束就立刻执行。也就是说,setTimeout(f,0)的作用是,尽可能早地执行指定的任务。而并不是会立刻就执行这个任务。
所以最终的结果是当前的函数执行结束之后,再去执行 setTimeout
定义的内容。
0 0
- setTimeout 深入分析其机制
- 深入分析异常机制!
- 深入分析异常机制!
- 深入分析Tasklet机制
- 深入分析Tasklet机制
- 深入分析Tasklet机制
- 深入分析Tasklet机制
- 深入分析Tasklet机制
- MTK History机制深入分析
- MTK History机制深入分析
- 深入分析HBase Compaction机制
- 深入分析HBase Compaction机制
- Java threadpool机制深入分析
- Java threadpool机制深入分析
- Linux select 机制深入分析
- 深入分析HBase Compaction机制
- 深入分析Activity 绘制机制
- 深入分析_linux_spinlock_实现机制
- Android状态栏微技巧,带你真正理解沉浸式模式
- 指针小结
- 微软认知服务 人脸识别 API 之 发现
- 20161203
- 【例题】【Splay】NKOJ2504 区间翻转问题
- setTimeout 深入分析其机制
- java获取文件夹下所有文件
- Android TextView文字横向自动滚动(跑马灯)
- 作用域和 this
- 类加载器学习
- raw格式(裸数据)格式文件读写
- VHDL TestBench数据产生方式
- c++中浮点数的存储方式
- 斯特林数的研究