let / const 的选择:
优先选用const
优点:1、const语义化更好
2、有了变量先给const,如果发现后面时要被修改的,再改为let
在简单数据类型中const定义之后的值不可以改变,复杂类型可以改变,因为在复杂类型中变量中存放的是地址,地址在被修改值时是不会被改变的。
const num = 10
num = 20 //报错
const arr = ['01','02']
arr.push('03')
console.log(arr) //['01','02','03']
空数组(空对象)为空数组(空对象),当重新出现一个中括号(大括号)时,属于一个新的地址,使用const会报错。
const names = []
names = [1,2,3] //属于一个新地址,会报错
const obj ={}
obj = {
uname = 'Amy'
} //又出现大括号,属于一个新对象,报错
应修改为:
const names = []
names[0] = 1
names[1] = 2
names[3] = 3
const obj ={}
obj.uname = 'Amy'
什么时候使用let:
如果基本数据类型的值或者引用数据类型的地址发生变化的时候
比如 一个变量进行加减运算,比如for循环中的i++