js定义变量时let和cons的使用场景
基础数据类型的数据-------定义后,不会发生变化,就使用const,会发生变化使用let
引用数据类型的数据----数据发生变化也可以使用const,原因如下:
由于内存中复杂数据类型存放在堆中,基础数据类型储存在栈中,所以上图中的arr(数组)会储存在内存的堆内存中,而数组的地址存储在栈中,数组通过访问栈内存中的地址进而访问堆中的数据。虽然数组arr增加‘blue’数据,但是数组指向的栈内存中的地址没有发生变化,所以可以使用const去声明数组变量
上图场景下不可使用const,控制台会报错
相当于把arr指向了一个新的数组,不是在原数组的基础上进行的操作,数组地址发生变化,不可使用const,只能使用let