const obj1 = obj
let a1 = obj.a
obj1.a = 200
console.log(obj.a)
console.log(a1)
a1 = 300
console.log(obj.a)
console.log(obj1.a)
打印结果:
画图理解+逐句解释
const obj = {a:100}//定义常量obj,{}内为对象var a
const obj1 = obj //常量obj1 和 常量obj都指向a地址
let a1 = obj.a //新声明一个let a1 里面存放此时的obj.a=100 ,即a1里面的值为100
obj1.a = 200 //将obj1 指向的对象a的值变为200
console.log(obj.a) //打印obj.a 200
console.log(a1) //打印a1 ,如图a1为100
a1 = 300 //let a1的值变为300,如图与a变量无关
console.log(obj.a) //a存放的值为200,没变
console.log(obj1.a)
解析:区分const与let、var
const只能存储常量和对象的地址,地址不可以修改否则会报错,但是地址内存储的对象属性可以修改。