더북(TheBook)

Note const인데 수정 가능한 이유는 무엇인가요?

앞의 예제에는 target 변수를 const로 선언했습니다. 하지만 target 배열에 새 값을 추가하거나 수정할 수 있었습니다. 이러한 상황 때문에 2.3.5 const로 상수 선언하기에서 const로 선언하면 엄밀히 말해 상수가 아니라고 했던 것입니다.

const로 선언한 변수에는 새로운 값을 대입(=)하지는 못합니다. 그러나 const에 객체(배열, 함수, 객체 리터럴)가 대입되면 객체 내부의 속성이나 배열의 요소는 수정할 수 있습니다.

const target2 = ['a', 'b', 'c', 'd', 'e'];
target2 = ['f', 'g']; // 불가능
target2[0] = 'h'; // 가능
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.