前言:
最近面试总是会问一些js运行机制,事件循环,异步执行的题,所以找了几篇博客做个总结。
1.最典型的js笔试题
console.log('script start');
setTimeout(function() {
console.log('setTimeout');
}, 0);
Promise.resolve().then(function() {
console.log('promise1');
}).then(function() {
console.log('promise2');});
console.log('script end');
先不看答案你猜一下输出结果:
我给的答案是:
//script start
//setTimeout
//promise1
//promise2
//script end
实际上是:
输出:script start, script end, promise1, promise2, setTimeout
然后就凉了。。。(又问了js运行机制,事件循环Event-Loop)。
2.事件循环,宏任务,微任务
js运行机制宏任务,微任务,事件循环这篇文章都有涉及js运行机制和这篇js运行机制事件循环两篇结合着看。就能彻底搞懂这一类问题了。这里有个外国的可视化执行方案可视化执行
最后提一下还有就是this指向的问题看看这篇文章(js this指向问题)或许你会恍然大悟!