js引擎
js引擎是浏览器的重要组成部分,重要用于读取js和执行js代码。
js引擎执行js时是单线程执行的。
js执行为什么是单线程?
试想一下:如果js是多线程执行的,假设现在有两个线程p1,p1,那么这两个线程可以同时对同一个dom元素进行操作
比喻说,p1对dom元素进行更新操作,p2对dom元素进行删除操作,这样就会引起混乱。
既然是单线程执行,就说明js代码是从上往下一行一行解析执行的,只有上一行代码执行完毕了才会执行下一行代码。如果上一行代码解析时间很长,那么下一行代码就会被阻塞,对于用于而言,阻塞就以为这卡死,用户体验度很差。那么这个就是同步的特点。
例如:
1:
2:
注意:这就是同步执行的效果,也就是说只有等到前面的代码执行完了,我才能接着往下志执行的。
异步:
输出结果:
注意:异步就是你做你的事情,我的事情,互不影响。
setTimeout setInterval 都是异步任务。
原文地址:http://blog.51cto.com/11871779/2125824
时间: 2024-10-05 05:10:27