const:ES6新增关键字,用于声明创建一个值的只读引用。
我们都知道,const一般用来定义常量,在声明的时候需要赋初始值,而且初始值一旦赋值,便不能改变。
但是以上说的是针对于基本类型数据的定义,对于引用类型的定义,不可变的是const绑定的指针,而它的属性可以任意修改。
说人话:
如果我用const定义了一个a等于10,
const a=10;
我就不能在下面写a=20;或者const a=20;
因为const声明的引用是只读的,a这个变量是不可以修改的。
但是,用const创建引用类型就不一样了,
例如:const obj={a:1,b:2};
这时,我不可以去重新定义obj,因为obj是该变量的引用指针,它是只读的。
但是,obj里面的属性是可以随意修改的,
例如,obj.a=100;这完全没毛病,不信你可以试试~~
因为obj的属性是存在堆中的。const只规定该变量的引用不可以修改,但是值是可以修改的,再去看下定义,明白了吗?