关于const
使用const 声明一个常量obj1。 { key1: 12 }这部分保存在堆里(便于理解)。假设地址为0x11111111
const obj1 = { key1: 12 }
第一种情况: 这就是直接改变了地址,肯定报错
obj1 = { a: 3 }。
第二种情况: 在obj1里面多加了一个键值对,原来的地方住不下了,于是开辟了新的空间。内存地址变了
obj1.key2 = 2
第三种情况: 删除key1的值,原来住的地方够住。内存地址没变
delete obj1.key1
第四种情况: 修改key1的值,原来住的地方够住。内存地址没变
obj1.key1 = 5
疑问
针对第四种情况,如果是这样:
obj1.key1 = [ 这个数组里存了1000个值 ]
此时分配给0x1111111这个地址的空间还够用么?如果不够,那岂不是有开辟新空间了?哪内存地址不还得变
我查了MDN文章
这句话改怎么理解呢?
只是变量标识符不能重新分配