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

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

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

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

5. 만약, 이러한 상황아래 객체와 배열이 저장된 영역까지도 수정 불가능을 원하시는 상황에서는
해당 객체를 얼리는 방법이 있어요!
* 얼리기: Object.freeze(친구들) => 실행하면, 수정되지 않음.(수정하여도 에러는 안나지만 수정이 안되어있음)
10월 15일 삭제예정 강의 문의
0
39
1
강의제목에 10/15일 삭제라고 나와있는데,
0
48
1
스크립트 영상 미일치
0
76
3
감정일기장 다이어리 필터 적용할때 컨텍스트를 Home에서 가져오는 특별한 이유가 궁금합니다.
0
58
2
강의 설명 중에 헷갈리는 것이 있네요
0
58
1
수업자료 관련 문의
0
67
3
1강 동영상 재생 오류
1
67
2
Composition단계에서 `Layer`는 누가 만드는지
0
44
1
Strict Mode 예시 질문!
0
59
2
수업이 안보여요
0
65
1
저자 블로그에 있는 강의는 어떤 강의인가요?
1
62
1
[해결됨]윈도우즈 환경에서 타입 스크립트 파일이 실행이 안됩니다.
1
86
5
4강 카드뉴스 자동화 자료가 안보입니다!!
0
107
2
윈도우즈 환경에서 진행중입니다.
0
63
2
const 배열에서 pop() 사용시 삭제되는 값 문의
0
89
2
aaaaaa
0
125
1
오타
0
143
1
잡았다 요놈! 풀이
0
286
1
혹시 심화강의는 계획이 있으신가요?
0
436
1
runjs 다운로드 후 유료결제를 해야하는건가요
0
989
1
섹션7 반복문 filter [그건 제 잔상입니다만?] 파트에서 코드스니펫 오류
0
370
1
각 문제별 제한 사항에 대해 궁금한점이 있습니다~
0
419
1
계산기가 이상해, typeof 풀이 문의
0
397
1
블로그 작성해도 되나요?
0
630
1

