inflearn logo
강의

Course

Instructor

[Code Camp] Javascript Algorithm Theory + Practice for Beginners

Adding/removing elements to an array - push, pop, unshift, shift

const 배열에 값 추가, 삭제, 변경 문의

Resolved

68

keepgoingje

3 asked

0

강의 ID 330604

22.배열에 요소 추가/제거하기 - push, pop, unshift, shift

위 강의 내용에 질문있습니다.
배열에 const를 사용했는데, const는 상수라 값 변경이 안되는 걸로 아는데 값을 넣고 빼고 변경할 수 있더라구요.

왜 그런지 알 수 있을까요?

블로그를 찾아봐도 딱히 잘 이해가 안되요

javascript

Answer 1

0

nwd09074926

안녕하세요! keepgoingje님!

해당 질문은 변수가 실제 저장되는 위치와 관련이 있어요!

다음과 같이 입력된 코드는 어떻게 변수를 저장하게 될까요?
const 친구들 = ["철수", "영희", "훈이"]

String, Number, Boolean의 경우에는 쉽게 저장이 가능하지만,
객체, 배열과 같이 많은 녀석들을 함께 저장하는 변수는 내부적으로 저장 방식이 달라져요!
(여유가 많이 있는 다른 공간에 저장을 해 놓고, 그 공간의 메모리주소를 변수에 저장해 놓는 방식이랍니다!)


그림으로 표현하면 다음과 같아요!

image.png



따라서, const 친구들 = ["철수", "영희", "훈이"] 의 경우,
"친구들" 변수가 const인 것이지,
["철수", "영희", "훈이"] 배열이 const인 것은 아니에요!

그러므로, const "친구들" 변수에 담긴 메모리주소 변경하는 것은 불가능하지만,
["철수", "영희", "훈이"] 배열을 변경하는 것은 가능하답니다!^^


=======================================

실습) 아래의 그림으로 이해하세요!


1. 아래의 변수 선언은 다음의 그림과 같이 저장됩니다.
const 친구들 = ["철수", "영희", "훈이"]

image.png




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

image.png




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

image.png




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