JavaScript 中的 Hoisting

145 阅读1分钟

拜读Lydia Hallie 的文章有感。遂记录一笔。

当JS引擎获取我们的脚本时,它要做的第一件事就是为代码中的标识符分配内存。 注意此时没有执行任何代码:

  • 函数变量存储的是函数在内存中的引用地址;
  • letconst声明的变量,存储的是<uninitialized>;
  • var声明的变量,存储的是undefined

const、let var

现在创建阶段已经完成,我们可以执行代码了。在letconst关键字,真正开始声明变量之前的区域,被称为暂时性死区。当我们想要在此区域提前引用对应变量时,会提示ReferenceError

暂时性死区