ES6 中,const 声明的是一个常量。声明的常量值不能进行改变。
如果对 const 声明之后的值进行修改,则会报错。如下图所示:
而且,const 不能进行重复声明。如下图:
但是,const 有需要注意的地方:
例(1):
const 声明一个对象:
const a = {};
a.name='mini';
a.age = 18;
console.log(a);
运行结果:
VM754:4 {name: "mini", age: 18}
例(2):
const 声明一个数组:
const a = [];
a.push(1);
a.push('abcd');
console.log(a);
运行结果:
VM820:4 (2) [1, "abcd"]
可以看到,例(1)和例(2)并没有报错。
例(3):
将已经声明的对象指向另一个对象,如下图所示:
例(4):
将另一个数组赋值给已经声明的数组,如下图所示:
可以看到,例(3)和例(4)报错了。
通过上面的例子,可以看到:
const 其实保证的是声明的常量指向的内存地址不变。
对于简单类型的数据,值保存在变量所指向的内存地址中,所以也就是常量。
对于数组和对象来说,const 声明的常量指向的内存地址,其实保存的是指向数组和对象的指针,const 保证了这个指针固定不变,是一个常量,但是指针指向的数据可以被改变。