当前位置:首页 > javascript > 正文内容

event-loop

自由小鸟5年前 (2019-11-18)javascript2856

如果知道js运行机制,在工作中会帮助我们更好的理解和编写代码,也知道为什么js是单线程

js为什么是单线程

原因,就是为了避免DOM渲染的冲突

异步是一种“无奈”的解决方案,虽然有很多问题,如下:

1,没按照书写方式执行,可读性差

2,callback中不容易模块化

什么是event-loop

1,同步代码,直接执行
2,异步函数先放在异步队列中
3,待同步函数执行完毕,轮询执行异步队列的函数setTimeout如果没有延迟时间会立即放到异步队列中如果有延迟时间,
会等到时间到后放入异步队列中如果遇到ajax会看成功的速度会来回轮询检测主线程和异步队列来回检

image.png


版权声明:本文由Web学习之路发布,如需转载请注明出处。

本文链接:https://webge.net/?id=74

返回列表

上一篇:正则的规则

下一篇:数组去重

“event-loop” 的相关文章

this指向

p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px 'Helvetica Neue'; color: #000000}es5 中 this指向该函数被调用的对象es6 中箭头函数的this指向是定义时的对象...

函数参数会生成新的作用域

函数参数会生成新的作用域

如果函数定义了参数就会自动生成新的作用域,这时候里面的变量值就会先从参数新的作用域找,如果没有就会再往上面找直到全局...

数组去重

var a=[1,3,4,5,6,1,3,9,6]; //代码是去重后的 function arrfn(data){ let newObj={}; for(let i=0;i<data.length;i++...

js 判断数组,对象

arr=[1,2,3,4]; obj={a:'aaa'}; console.log(arr.constructor===Object) //false arr instanceof Array //true Object.prototype.toString.call(...

js 宏任务和微任务

js 宏任务和微任务

首先讲粗略说一下宏任务和微任务宏任务:script(整体代码), setTimeout, setInterval微任务包括: Promise, MutationObserver(html5新特性),process.nextTick。 代码从上至下在执行过程,遇到Promise,new Promi...

js原型链

js原型链

看到好的文章赶紧都收藏起来,但是有时收藏的太多内存不够呀,还是记录到我的博客上比较好,有时好的文章突然的某天就打不开了,那是多少痛的领悟,哈哈 文章转自 https://juejin.im/post/5d31ea79e51d457778117452...