let 声明的变量是可变的,可以重新赋值
const声明的变量是常量,一旦赋值后就不能再修改
let or const ?
建议: const 优先,尽量使用const,原因是:
很多变量声明的时候明确不会被更改了,为了安全性,那么为什么不用const呢?
实际开发中也是,比如 React Vue ,基本const 声明
建议:
有了变量先给const ,如果发现它后是要被修改的,再改为let
注意:
1.const 声明的值不能更改,而且const 声明变量的时候需要里面进行初始化
2.但是对于引用数据类型,const 声明的变量,里面存的不是 值, 不是 值, 不是 值,是 地址
3.基本数据类型:变量的数据直接存放在栈空间中
复杂数据类型(栈空间)里存放的是地址,真正数据存放在堆空间中
所以: const 声明的变量不可以修改 ,本质是说, const 声明的变量 地址不能修改
例题,下面可不可以把let 改为 const
1.对于基本数据类型
const num=1
num=num+1
console.log(num);
let 不可以改为const 因为变量重新赋值了
2.引用数据类型
const arr=['red','green']
arr.push('black')
console.log(arr);
const pig={
uname:'佩奇',
age:4
}
pig.color='pink'
console.log(pig);
let可以改为const,因为地址没有修改,值修改无影响
const names=[]
names=[1,2,3] // Assignment to constant variable
不可以,地址发生了改变
注意:
由于const 的值是不能修改的,但是只是基于基本数据类型,复杂数据类型我们存储的是地址,只要不修改初始地址是可以修改值