自学前端以来, 一直用的es6语法, 知道ts流行之后, 转战ts. 相较于es5, es6的letconst可谓是大改变, 那么它们的区别又是什么?

记录


变量提升

这个区块和后面的暂时性死区完全可以另外总结一篇文章, 太懒了, 想想算了.

变量提升具体有两个方面:

  • 变量
  • 函数

这两者的作用分别体现在:

  • 可以使用未声明的变量(后续操作)
  • 优先级高于单纯的变量

暂时性死区

顾名思义, 和上面的变量提升起到相反的作用. 引用官方的一句话:

在代码块内, 使用let声明变量之前, 该变量都是不可用的

精准的概括了暂时性死区的含义.

区别

简单总结了变量提升暂时性死区, 一方面回顾基础, 另一方面也是为了说明三者的区别.

继续延续言简意赅的传统

  • var存在变量提升, let&const由于存在暂时性死区, 无法在声明前使用变量
  • var在全局作用域下声明变量会被挂在到window
  • const用于声明后续不再对其赋值的变量
  • 大多数情况下用const代替let