변경 가능성은 값을 변경하는 능력입니다. 변경 가능한 값은 변경될 수 있고 변경 불가능한 값은 변경될 수 없습니다. 일반적인 오해는 "const" 키워드가 변수를 불변으로 만든다는 것입니다.
실제로 "const"는 재할당만 방지합니다. 객체가 아닌 유형의 경우 값은 재할당을 통해서만 변경할 수 있으므로 "const"로 선언하면 실제로는 변경할 수 없게 됩니다. 예를 들어 다음 코드를 고려해보세요.
const num = 5; num = 7; // illegal reassignment of const variable
이 코드에서 num 값을 변경할 수 있는 방법은 없습니다. 또는 --를 사용하는 것은 여전히 재할당으로 간주되며 const로 선언된 변수에 사용하려고 하면 오류 메시지에 표시됩니다.
const num = 5; num ;//illegal reassignment of constant결과 오류는 다음과 같습니다.
const num = 5; num ;//illegal reassignment of constantconst 객체는 변경 가능
const num = 5; num ;//illegal reassignment of constant객체에는 내부 값을 변경하는 메서드도 있을 수 있습니다.
const num = 5; num ;//illegal reassignment of constant객체를 불변으로 만들기
const num = 5; num ;//illegal reassignment of constant엄격 모드를 사용하는 경우 num 값을 변경하려고 하면 실제로 다음 오류 메시지와 함께 충돌이 발생합니다.
const num = 5; num ;//illegal reassignment of constant"const" 없이 Object.freeze()를 사용하는 것만으로도 이 객체를 불변으로 만드는 데 충분합니다. 그러나 변수 이름을 변경할 수 없게 만들지는 않습니다.
const num = 5; num ;//illegal reassignment of constant이 버전의 코드에서는 obj가 재할당됩니다. 동일한 이름을 공유하는 이전 객체에 동결()이 적용되었지만 새 객체는 동결된 적이 없으므로 변경 가능합니다.
밀봉물체
const num = 5; num ;//illegal reassignment of constant세분화된 제어
const num = 5; num ;//illegal reassignment of constant이 예에서는 새 속성이 정의되지만 기존 속성에 정의 속성()을 사용할 수도 있습니다. "configurable"이 이전에 false로 설정된 경우 true로 변경할 수 없지만, 원래 true였던 경우 이 변경 사항은 구성 유형으로 간주되므로 false로 설정할 수 있습니다.
결론
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3