简单讲讲异步的理解
# 简单陈述异步的理解
# 简单理解什么是异步
首先 JS 一定是单线程
的,为什么是单线程呢,因为JS的终极目的还是为了操作DOM,实现用户交互。假设JS是多线程的,当两个线程同时操作同一个DOM的时候,没法处理,矛盾了。
既然是单线程,也就引发了一个问题,那就是阻塞
。什么叫阻塞,假设JS的代码永远是同步的,当前面的一段代码耗时很久的时候,后面的代码岂不是要一直等前面的代码执行完才能执行,这就会造成页面十分的卡顿,因此有了异步
所谓异步,就是先不进入JS的主线程
执行,而是先进入任务队列
,当主线程的任务执行完了,再拿出来进入主线程执行。
# 常见的异步任务(常见的)
事件监听:javascript各种事件的执行都是异步任务
setTimeout、setInterval 定时器
Ajax
MutationObserver 创建并返回一个新的 MutationObserver 它会在指定的DOM发生变化时被调用。
Promise
async function
这块涉及到事件循环和宏任务、微任务之类的
先简单的记一下 执行执行循序:
同步 > 宏观 > 微观
← 防抖和节流 简单讲讲原型和原型链→