상수의 불변성을 강조하는 ES6 사양을 참조했음에도 불구하고 JavaScript는 상수 개체에 대해 겉보기에 모순되는 동작을 허용합니다. 상수 개체에 다른 값을 할당하면 변경되지 않은 상태로 유지되지만 개체 내의 요소를 추가하거나 제거하는 것은 가능해 보입니다.
MDN 문서에 따르면 "상수는 재할당을 통해 변경", "상수는 다시 선언할 수 없습니다." 결정적으로 이는 객체 자체가 아니라 객체에 대한 참조가 일정하다는 것을 의미합니다. 상수 변수에 새 개체를 할당할 수는 없지만 개체의 내용을 수정할 수는 있습니다.
다음 코드 조각을 고려하세요.
const myArray = []; myArray.push(1); console.log(myArray); // Output: [1]
이 경우 myArray 배열에 대한 참조는 여전히 동일한 배열 객체를 가리키고 있으므로 변경되지 않은 상태로 유지됩니다. 그러나 push() 작업은 배열에 요소를 추가하여 해당 내용을 변경하지만 상수 의미를 위반하지는 않습니다.
마찬가지로 개체에 속성을 추가할 수 있습니다. 참조를 수정하지 않고 상수 객체:
const myObject = {}; myObject.foo = 'bar'; console.log(myObject); // Output: {foo: "bar"}
재할당과 수정을 구별하는 것이 중요합니다. 재할당은 새 참조를 생성하는 반면 수정은 동일한 개체 참조에 대해 작동합니다. 상수 객체의 경우 불변성을 보장하기 위해 재할당이 금지되지만, 객체 내용의 수정은 여전히 허용됩니다.
위 내용은 JavaScript 상수가 불변인 경우 어떻게 수정될 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!