如果我没有错,variable
名称使用的指针在内存中不能改变,但是变量points
可能会改变。为什么我的常数不能指向新值
let name = "google";
const foo = name;
console.log(foo); //prints google
name = "yahoo";
console.log(foo); //prints google again instead of yahoo
它应该不打印雅虎,因为变量名称的值已被更改..任何人都可以解释我这一点。
又如,当其变化......
const foo = [];
foo.push("test");
console.log(foo); // outputs ["test"]
我抵达该处困惑,任何人都可以解释我这一点。
第一个例子不是特定于常量的。原始字符串被复制,没有参考被传递。在第二种情况下,引用不会改变,对象的属性不是常量,只有对象与引用“foo”的绑定是恒定的。要获得一个具有常量属性的对象,可以使用'const foo = Object.freeze([]);'。简而言之,'const foo ='...';'只是阻止你使用未来的'foo ='...';'。 – Xufox
'const'意味着允许变异'const xs = [1,2]; XS。推(3)',禁止重新分配'const ys = [1,2]; ys = [1,2,3] //失败 – ftor