let与const心智模型

let 与 const 心智模型:

  1. letconst分别是变量与常量的块级声明关键字;

  2. 其主要目的是为了约束开发者编写出逻辑更加清晰,阅读性更好的代码;

  3. 它们体现了JavaScript的“块级作用域”;

let 与 const 共同特性:

  • 块级声明:{}之内有效,之外被销毁;

  • 没有变量声明提升机制,且存在暂时性锁区(Temporal Dead Zone):

  • 禁止重复声明

  • 全局块作用域绑定

  • 循环中的块作用域绑定

const 的特性:

  • const 变量值不可更改

暂时性锁区: JavaScript引擎在扫描代码发现变量声明时,只有两种处理方式:

  1. 遇到var声明:将它提升到作用域顶部;

  2. 遇到letconst声明:将声明放到TDZ中(访问TDZ中的变量会触发运行时错误,只有执行过变量声明语句后,变量才会从TDZ中移出,然后才能正常访问);

posted @ 2017-10-17 17:43  libinfs  阅读(267)  评论(0编辑  收藏  举报