JS 的一些底层的机制

1 阅读1分钟

JavaScript 核心机制深度解析

事件循环与异步执行

  • 执行顺序口诀:先同步,后微任务,再宏任务。微任务队列清空后才会执行下一个宏任务。
  • 关键陷阱Promise构造函数内的代码是同步执行的,只有 .then回调才属于微任务;await会暂停函数执行,但不会阻塞外部同步代码。
  • 实战场景:结合 setTimeoutPromise和 async/await的混合代码,考察对宏任务与微任务优先级及执行时机的理解。

闭包与作用域链

  • 核心定义:闭包是函数与其声明时所处词法环境的组合,即使函数在词法环境之外执行,也能访问该环境中的变量。
  • 应用场景:模块化封装(私有变量)、防抖节流(状态保留)、函数柯里化以及 React Hooks 的状态管理。
  • 内存泄漏风险:闭包导致外层函数变量无法被垃圾回收,需通过及时解除引用(如赋值为 null)或使用 WeakMap来避免内存泄漏。

Promise 与 async/await

  • 本质关系async/await是 Promise的语法糖,async函数总是返回一个 Promise对象,await会等待右侧 Promise状态变更。
  • 执行时机await右侧的表达式会立即执行,而 await后续的代码会被放入微任务队列,等待当前宏任务执行完毕后再执行。
  • 错误处理async函数中未捕获的 Promise拒绝会导致整个函数返回的 Promise被拒绝,需结合 try/catch进行异常处理。