반응형
SMALL
const 키워드를 사용하여 선언한 변수는 재할당이 불가능한 변수를 나타냅니다. 이것은 변수가 한 번 초기화되면 다른 값을 할당할 수 없다는 것을 의미합니다. 그러나 **const**로 선언한 변수가 객체를 참조하는 경우, 객체 자체를 변경할 수 있습니다. 다시 말해, const 변수가 참조하는 객체의 속성을 변경하는 것은 허용됩니다.
예를 들어:
const person = {
name: "Alice",
age: 30
};
// 객체 속성 변경 가능
person.age = 31;
console.log(person); // 출력 결과: { name: 'Alice', age: 31 }
위의 코드에서 person 변수는 **const**로 선언되었지만, 객체 자체를 변경하지 않고 객체의 속성을 변경하였으므로 에러가 발생하지 않습니다.
반면에 다음과 같이 객체를 새로운 객체로 할당하려고 하면 에러가 발생합니다:
const person = {
name: "Alice",
age: 30
};
// 객체를 새로운 객체로 할당 (에러 발생)
person = {
name: "Bob",
age: 25
};
이 코드는 person 변수가 재할당을 허용하지 않기 때문에 에러를 발생시킵니다.
따라서 **const**를 사용하여 객체를 선언하면 객체 자체를 다른 것으로 대체할 수 없지만, 객체의 속성을 변경하는 것은 허용됩니다. 이러한 특성은 변수가 참조하는 객체를 보호하면서도 객체의 내부 상태를 변경할 수 있는 유용한 방법을 제공합니다.
728x90
반응형
LIST
'javascript > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
프로토타입 체인 (0) | 2024.02.02 |
---|---|
화살표 함수가 논컨스트럭터 구조인 이유와 반례 (0) | 2024.02.02 |
호이스팅 (0) | 2024.02.02 |
일급 객체 (0) | 2024.02.02 |
ECMAScript 에서의 공유에 의한 전달 (1) | 2024.02.02 |