摘要: js事件轮询执行顺序总结: 1)所有的同步任务都在主线程上执行,行成一个执行栈。 2)除了主线程之外,还存在一个任务列队,只要异步任务有了运行结果,就在任务列队中植入一个时间标记。 3)主线程完成所有任务(执行栈清空),就会读取任务列队,先执行微任务队列在进行DOM渲染,最后执行宏任务队列。 4)重 阅读全文
posted @ 2022-04-08 10:38 musicBird 阅读(75) 评论(0) 推荐(0)
摘要: 记住: JS是单线程的,他和dom渲染共用一个线程 JS执行的时候,会给dom渲染留一些时机 上一篇讲到eventloop的执行机制,但是在这个机制中的call stack执行完成后(包括第一遍的eventloop)会尝试DOM渲染,最后触发第二轮的eventloop的callqueue,如此反复循 阅读全文
posted @ 2022-04-07 17:10 musicBird 阅读(176) 评论(0) 推荐(0)
摘要: 一、宏任务和微任务有哪些 宏任务:setTimeout,setInterval,ajax,dom,宏任务是由浏览器提供的 微任务:promise,async/await,微任务是由es6提供的 二、微任务一定会比宏任务限制性 看看下面的代码 1 console.log(100) 2 //宏任务 3 阅读全文
posted @ 2022-04-07 16:51 musicBird 阅读(277) 评论(0) 推荐(0)
摘要: 1 async function async1(){ 2 console.log('async1 start') //2 3 await async2() 4 //await async2()后面的内容可以看做是callback里得内容即是异步 5 //类似eventloop,settimeout 阅读全文
posted @ 2022-04-07 10:46 musicBird 阅读(402) 评论(0) 推荐(0)
摘要: 记住两句话: 1.then正常返回resolved,里面有报错返回reject 1 const p1 = Promise.resolve().then(()=>{ 2 console.log(123) 3 }) 4 5 console.log('p1',p1) //此时的状态是resolve,后面可 阅读全文
posted @ 2022-04-06 10:54 musicBird 阅读(116) 评论(0) 推荐(0)
摘要: 先看一段代码 console.log('Hi') setTimeOut(function cb1(){ console.log('cb1') },500) console.log('Bye') 第一步 压入执行栈执行console.log同步代码 第二步 定时器为异步,放入webapis中 第三步 阅读全文
posted @ 2022-04-03 22:28 musicBird 阅读(30) 评论(0) 推荐(0)
摘要: 我们已经非常熟悉单个的vue组件的生命周期执行顺序了,但是,如果有嵌套组件,父子组件的生命周期的执行顺序是什么? 当父子组件在加载的时候,执行的先后顺序为 父beforeCreate -> 父created -> 父beforeMount -> 子beforeCreate -> 子created - 阅读全文
posted @ 2022-04-02 15:25 musicBird 阅读(667) 评论(0) 推荐(0)
摘要: 1 Function.prototype.bind1 = function(){ 2 // 将类数组转化成数组 3 let arr = Array.prototype.slice.call(arguments) 4 5 //提取this 6 const t = arr.shift() 7 8 //保 阅读全文
posted @ 2022-04-02 15:12 musicBird 阅读(37) 评论(0) 推荐(0)
摘要: this指向两句话口诀: 1.this永远指向函数执行的环境,而不是声明的环境 2.箭头函数的this指向父级 一、正常函数的this function fn1(){ console.log(this) } fn1() //this window fn1.call({x:100}) //this { 阅读全文
posted @ 2022-04-02 11:15 musicBird 阅读(48) 评论(0) 推荐(0)
摘要: 一句话:所有的自由变量的取值都是在函数定义的地方,向上级作用域查找,而不是函数执行的地方。 1.闭包 1 function create(){ 2 let a = 100 3 return function(){ 4 console.log(a) //自由变量定义的地方取值,没有就找上级 5 } 6 阅读全文
posted @ 2022-04-01 21:25 musicBird 阅读(67) 评论(0) 推荐(0)