前言
面试时,关于同步和异步
,可能会问以下问题:
同步和异步的区别是什么?分别举一个同步和异步的例子
一个关于 setTimeout 的笔试题
前端使用异步的场景哪些?
面试时,关于js运行机制
,需要注意以下几个问题:
如何理解JS的单线程
什么是任务队列
什么是 EventLoop
理解哪些语句会放入异步任务队列
理解语句放入异步任务队列的时机
JS的异步和单线程
因为是单线程,所以必须异步。
我们通过题目来解释以下。
题目一:异步
现有如下代码:
console.log(1);
setTimeout(function () {
console.log(2);
}, 1000);
console.log(3);
console.log(4);
上面的代码中,我们很容易知道,打印的顺序是1,3,4,2
。因为你会想到,要等一秒之后再打印2
。
可如果我把延时的时间从1000
改成0
:
console.log(1);
setTimeout(function <