如果我沒有錯,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