티스토리 뷰

반응형

const는 재할당이 불가하다. 그런데 const에 담긴 객체(object, 배열...)의 경우 수정이 가능하다. 어떻게 가능한 걸까? 우선 var, let, const 차이에 대해 간략하게 알아보자.

 

 

 

 

 

 

 

 

var, let, const

  var let const
재선언 O X X
재할당 O O X
호이스팅 undefined로 초기화되어 메모리에 저장 초기화되지 않은 상태로 메모리에 저장 초기화되지 않은 상태로 메모리에 저장
유효 범위 (Scope) 함수 스코프 블록 스코프 블록 스코프

 

 

 

const에 객체가 담긴 경우

위 표에서도 알 수 있듯이 const는 재할당이 불가하다. 그런데 const에 담긴 객체는 수정이 가능하다.

이 경우에는 const에 담긴 객체 전체를 재할당 하는 게 아니라 객체의 속성 중에 한 속성만 재할당하는 것이므로 수정이 가능한 것이다.

 

예제

const car = {
  name: 'bmw',
  color: 'blue',
}

// 전체 재할당은 에러
car = {
  name: 'bmw',
  color: 'red',
} // Assignment to constant variable.

// 부분 수정 가능
car.color = 'red';
console.log(car.color); // red

 

 

const fruits = ['apple', 'melon', 'lemon'];

// 전체 재할당은 에러
fruits = ['grape'] // Assignment to constant variable.

// 부분 수정 가능
fruits[0] = 'grape'
console.log(fruits) // ["grape", "melon", "lemon"]

 

 

반응형
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31