JS运行机制

        JS本身是单线程语言,在h5中通过Web-Worker实现多线程,其本身只是一种模拟的手段,纸老虎。

        js如何实现异步操作呢?即当前任务需要等太久时间才能完成,如何保证进程不堵塞?,首先将所有任务分为同步任务,异步任务。同步任务放入主线程中,一个接一个解决完成。异步任务则放入任务队列中,只有当任务队列中的任务通知主线程,才会去完成该任务。在主线程中的任务未完成前,是不会执行任务列表的任务的,就好比在while(true){};后新增 settimeout(function(){console.log(1)}),是不会输出任何值的,因为,主线程被卡死了。settimeout方法未设定时间会默认为0,但是一旦时间低于4ms都会默认4ms。

异步任务的方法:

1.setTimeout和setlnterval

2.DOM事件

3.ES6的promise

4.ajax请求

你可能感兴趣的:(JS运行机制)