setTimeout与console.log之间执行先后顺序
来源:互联网 发布:淘宝双11怎么修改价格 编辑:程序博客网 时间:2024/05/20 19:48
setTimeout与console.log之间执行先后顺序
setTimeout延时为0时:
o2o:
setTimeout(function(){ console.log(2); },0); console.log(1); //输出顺序:1,2
n2n:
setTimeout(function(){ console.log(4); },0); setTimeout(function(){ console.log(5); },0); console.log(1); console.log(2); console.log(3); //输出顺序:1,2,3,4,5
……
原因:页面中所有由setTimeout定义的操作,都将放在同一个队列中依次执行。而这个队列的执行时间需要等到函数调用栈执行完毕后才会执行,也就是等待所有的可执行代码执行完毕,才会轮到setTimeout执行其内部操作,并且按照其时延时间长短顺序执行代码!
例题:
setTimeout(function(){ console.log(a); },0); var a = 1; console.log(b); var b = 2; var c = 3; var d = 4; var e = 5; function fx(c){ console.log(c); } function fn(e,d){ console.log(d); setTimeout(function(){ console.log(e); },10); } setTimeout(function(){ console.log(b); },20); fn(e,d); fx(c);
依次输出:
undefined 4 3 1 5 2
原因:
1、console.log()函数会在setTimeout函数之前执行,并且b在输出之前未被定义所以最先输出undefined;2、之后,会执行fn函数和fx函数,而fn函数内存在console.log函数,那么它将会先输出d的值4;3、然后,在fx函数内也存在console.log函数,同样会先输出c的值3;4、再来比较setTimeout函数时延长短,依次输出1,5,2。
阅读全文
0 0
- setTimeout与console.log之间执行先后顺序
- 脚本先后执行顺序
- ajax执行先后顺序
- ajax执行先后顺序
- ajax执行先后顺序
- cout中表达式的先后执行顺序与输出顺序
- static变量/方法,与基类父类执行的先后顺序
- console 与自执行对象自定义属性间 执行先后关系关系??
- sql关键词执行先后顺序
- 程序执行的先后顺序
- js函数执行先后顺序
- 静态代码块,构造代码块,构造函数之间的差别及先后执行顺序
- setTimeout的“异步”,执行顺序
- console.log与alert
- cout输出中多个表达式的先后执行顺序与输出顺序
- wex5 实战 wex5与js的组件关系与执行顺序(父子与先后)
- SPRING的初始化方法执行先后顺序
- Struts2框架校验执行的先后顺序
- 基于MFC的五子棋应用(四)实践
- dpdk vhost研究 (三)
- Palindrome Partitioning
- ConcurrentHashMap
- 《图解HTTP》读书笔记(1)之第一章了解Web及网络基础(关键词:计算机网络/HTTP/Web/网络基础)
- setTimeout与console.log之间执行先后顺序
- Linux中线程栈测试
- 【Java】实现浮点数组的并集以及整型数组的交集和两个字符串数组的逆序排序
- servlet实现秒数跳转操作的源码
- 归并排序
- Centos6.4下搭建redis缓存
- flex 读条
- Mybatis之sql小结
- Linux top命令的用法详细详解