const 对象的属性能否修改

const保证的并不是变量的值不能改动,而是变量指向的那个内存地址不能改动。
  • 对于基本类型的数据(数值、字符串、布尔值),其值就保存在变量指向的那个内存地址,因此等同于常量。
  • 对于引用类型的数据(主要是对象和数组)来说,变量指向数据的内存地址,保存的只是一个指针,const只能保证这个指针是固定不变的,至于它指向的数据结构就不能控制了。
const aa=true
aa=false
console.log(aa)
// VM1089:2 Uncaught TypeError: Assignment to constant variable.
const aaa=3
aaa=5
console.log(aaa)
// VM1152:2 Uncaught TypeError: Assignment to constant variable.
const aaaa='ss'
aaaa='dd'
console.log(aaaa)
// VM1194:2 Uncaught TypeError: Assignment to constant variable.
const aaaaa={aa:'dd'}
aaaaa={aa:'bb'}
console.log(aaaaa)
// VM1257:2 Uncaught TypeError: Assignment to constant variable.
const aaaaaa={aa:'dd'}
aaaaaa.aa='bb'
console.log(aaaaaa)
// {aa: "bb"}

 

上一篇:[0] InvalidArgumentException in Response.php line 316, variable type error: object


下一篇:Java 005: Declaration and Assignment