自学前端以来, 一直用的es6语法, 知道ts流行之后, 转战ts. 相较于es5, es6的let
、const
可谓是大改变, 那么它们的区别又是什么?
记录
变量提升
这个区块和后面的暂时性死区完全可以另外总结一篇文章, 太懒了, 想想算了.
变量提升具体有两个方面
:
- 变量
- 函数
这两者的作用分别体现在:
- 可以使用未声明的变量(后续操作)
- 优先级高于单纯的
变量
暂时性死区
顾名思义, 和上面的变量提升起到相反的作用. 引用官方的一句话:
在代码块内, 使用
let
声明变量之前, 该变量都是不可用的
精准的概括了暂时性死区
的含义.
区别
简单总结了变量提升和暂时性死区, 一方面回顾基础, 另一方面也是为了说明三者
的区别.
继续延续
言简意赅
的传统
var
存在变量提升,let&const
由于存在暂时性死区, 无法在声明前使用变量var
在全局作用域下声明变量会被挂在到window
上const
用于声明后续不再对其赋值的变量- 大多数情况下用
const
代替let