const 배열에 값 추가, 삭제, 변경 문의
강의 ID 330604
22.배열에 요소 추가/제거하기 - push, pop, unshift, shift
위 강의 내용에 질문있습니다.
배열에 const를 사용했는데, const는 상수라 값 변경이 안되는 걸로 아는데 값을 넣고 빼고 변경할 수 있더라구요.
왜 그런지 알 수 있을까요?
블로그를 찾아봐도 딱히 잘 이해가 안되요
Answer 1
0
안녕하세요! keepgoingje님!
해당 질문은 변수가 실제 저장되는 위치와 관련이 있어요!
다음과 같이 입력된 코드는 어떻게 변수를 저장하게 될까요?const 친구들 = ["철수", "영희", "훈이"]
String, Number, Boolean의 경우에는 쉽게 저장이 가능하지만,
객체, 배열과 같이 많은 녀석들을 함께 저장하는 변수는 내부적으로 저장 방식이 달라져요!
(여유가 많이 있는 다른 공간에 저장을 해 놓고, 그 공간의 메모리주소를 변수에 저장해 놓는 방식이랍니다!)
그림으로 표현하면 다음과 같아요!

따라서, const 친구들 = ["철수", "영희", "훈이"] 의 경우,
"친구들" 변수가 const인 것이지,
["철수", "영희", "훈이"] 배열이 const인 것은 아니에요!
그러므로, const "친구들" 변수에 담긴 메모리주소 변경하는 것은 불가능하지만,
["철수", "영희", "훈이"] 배열을 변경하는 것은 가능하답니다!^^
=======================================
실습) 아래의 그림으로 이해하세요!
1. 아래의 변수 선언은 다음의 그림과 같이 저장됩니다.const 친구들 = ["철수", "영희", "훈이"]

2. 이미 const로 만들어진 친구들 변수에 저장된 값을 바꾸는 것은 불가능해요!친구들 = ["맹구", "짱구"]

3. 하지만, 배열과 객체가 저장되어 있는 장소는 const와는 상관이 없으므로, 수정 가능합니다.

5. 만약, 이러한 상황아래 객체와 배열이 저장된 영역까지도 수정 불가능을 원하시는 상황에서는
해당 객체를 얼리는 방법이 있어요!
* 얼리기: Object.freeze(친구들) => 실행하면, 수정되지 않음.(수정하여도 에러는 안나지만 수정이 안되어있음)
3강 질문
0
15
1
74. 데이터 캐시 - 1 (이론) 강의 영상 누락
0
26
1
2강 nodejs 3단계 설명 질문
0
33
1
imagesLoaded에 관한 질문
0
19
2
useEffect와 lifecycle문의
0
26
2
프론트엔드 학습 수준 문의
0
37
2
리액트 챕터별 코드에서 eslint 설정파일이 없어요
0
47
2
최근 코테, 과제 테스트 트렌드
0
67
2
lucide react 아이콘 설치
0
46
2
17강 zustand store 서버에서 생성
1
36
1
문의관련 문의
0
44
2
next.js 를 2대이상 실행하는 경우 제공하는 cache 기능들은 어떻게 되나요?
0
55
2
76. 전문성 더하기: 놓치면 아쉬운 관련 기술들 수업 자료가 없어요.
0
47
2
ai 도구 질문
0
31
1
const 배열에서 pop() 사용시 삭제되는 값 문의
0
50
2
aaaaaa
0
95
1
오타
0
115
1
잡았다 요놈! 풀이
0
256
1
혹시 심화강의는 계획이 있으신가요?
0
414
1
runjs 다운로드 후 유료결제를 해야하는건가요
0
955
1
섹션7 반복문 filter [그건 제 잔상입니다만?] 파트에서 코드스니펫 오류
0
351
1
각 문제별 제한 사항에 대해 궁금한점이 있습니다~
0
397
1
계산기가 이상해, typeof 풀이 문의
0
365
1
블로그 작성해도 되나요?
0
603
1

