인프런 커뮤니티 질문&답변

반짝반짝한 북극곰님의 프로필 이미지
반짝반짝한 북극곰

작성한 질문수

[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문

객체의 비교(원시값과의 차이점)

객체 참조 관련 질문

작성

·

99

0

image.png

위와 같이 코드를 작성했을 때, D.push(d) 이후에는 d === D[2] 값이 false가 나옵니다. 이건 push할 때는 새로운 주소에 할당되기 때문일까요?

깊이에 따른 복사가 다르다고 얼핏 듣긴 했습니다만 잘 몰라서 질문 드립니다.

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

const d = [1, 2, 3]

const D = [1, 2, d]

D.push(d);

4

console.log(d === D[2])

VM276:1 true

true 잘 나옵니다.

앗 제가 의미한 것은 push를 통해 추가된 D의 마지막 원소를 원래 d와 비교하면 false로 출력된다는 것이었습니다.

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네, true가 나와야 정상입니다. 제가 그걸 보여드린 거고요.

반짝반짝한 북극곰님의 프로필 이미지
반짝반짝한 북극곰

작성한 질문수

질문하기