티스토리 뷰
const는 상수이며 재할당, 재선언이 불가하다.
하지만 아래의 예시를 보면,
상수가 변화한 것을 볼 수가 있다.
const arr = [1,2,3,4]
console.log(arr) //[1,2,3,4]
arr.push(5)
console.log(arr) //[1,2,3,4,5]
그렇다면 상수는 재할당이 가능한 것 아닌가?
정답: 아니다
분명 상수의 값이 변화하였는데, 재할당이 가능하지 않은 이유는 무엇일까?
그 이유는 arr가 배열이기 때문이다.
원시형은 그 자체의 값을 할당하는 데에 반해, 참조형인 객체는 주소값을 할당한다.
배열 또한 객체에 해당되기 때문에, 메모리에는 주소값이 할당된다.
즉, 메모리 저장공간에 곧바로 값을 저장하지않았기 때문에 객체가 생성된 이후,
동적으로 값을 추가해도 주소는 바뀌지 않기 때문에 값이 바뀌지는 않는다고 말하는 것이다.
위의 사진처럼 객체는 주소값을 참조하기 때문에,
const의 재할당 X, 레퍼런스 타입의 값 재할당 O
결론
const는 재할당이 불가한것이 맞다.
하지만 const 배열, 객체는 값이 아닌 주소값이 할당되므로, 요소나 속성을 조작 가능하다!
'취업준비 > 면접' 카테고리의 다른 글
면접 질문 리스트 (0) | 2023.07.02 |
---|---|
Flux 패턴이란? (0) | 2023.06.14 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- dfs
- React quill
- 스택오버플로우
- 브루드포스
- 개인 프로젝트
- 기술면접
- Python
- useContext
- SEB 43기
- 백준
- 감정 일기장
- SEB 43
- SEB43
- 다이나믹 프로그래밍
- dictionary
- 프론트엔드
- 코드스테이츠
- Redux
- 그리디 알고리즘
- seb
- SEB43기
- til
- 프리프로젝트
- 회고
- 인적성
- 감정일기장
- 프로젝트
- 프로그래머스
- 코테
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함