ES6 let与const

声明变量
var
全局作用域和函数作用域
可以重复声明,后面声明的会覆盖前面的

const,let

* +块级作用域,在块外访问会报未定义的错

ES6 let与const_第1张图片

ES6 let与const_第2张图片

ES6 let与const_第3张图片

* 变量提升
ES6 let与const_第4张图片
let声明的变量没有变量提升。

*容易被忽略的暂时性死区
ES6 let与const_第5张图片

* 重复声明
let在同一块内重复声明会报错,不能重复声明,但可以重复赋值
image.png
image.png

* const和let不同的点有:

1.1const声明的是一个常量,不能修改它的值;而let声明的变量可以重新赋值
2.1const在声明数组或者对象时,存储的并不是数组或者对象本身,而是引用的地址,因此可以改变数组或者对象内部的值,不会报错

因此,在使用const时要记住一点:使用const声明常量时,不能重新声明,也不能重新赋值。如果声明的常量是引用类型,我们可以更改存储在引用的值。

你可能感兴趣的