JavaScript

[JavaScript] 원시 타입과 참조 타입 질문 1

학학이 2020. 10. 7. 12:27

2016/04/13 - [JavaScript] - [JavaScript] 원시 타입과 참조 타입 질문에 대한 답변입니다.

질문

"자바스크립트 변수는 원시타입 값이 그대로 저장된다.(메모리 참조가 아닌 값의 복사)" 라는 부분에서 궁금한 점이 있습니다.



color1 = "red"


color2 = color1


이 상태에서는 color1 변수가 "red"라는 값을 가진 메모리 주소를 바라보고,


color2 = color1 를 하는 순간 color2는 color1이 바라보는 메모리 주소 값을 바라봅니다.


이후 color1 = "blue" 를 하면, color1가 바라보던 메모리에 값이 새로 할당되어 할당 된 주소를 바라보는 것으로 알고 있습니다.



좀 지난 글이긴 해도 학습 중에 궁금한 점이라 여쭤봅니다!

 

답변

color2 = color1 를 하는 순간 color2는 color1이 바라보는 메모리 주소 값을 바라봅니다.

JavaScirpt는 원시 타입의 경우 값을 복사하여 새로운 메모리 주소를 할당받습니다.

즉, color2는 color1의 메모리 주소 값을 바라보지 않고 새로운 메모리 주소를 할당받고 color1의 메모리에 쓰인 값을 복사해서 color2 메모리에 값을 할당합니다.

 

Javascript 핵심 개념 알아보기 - JS Flow 강의를 보시면 조금 더 자세하게 알 수 있습니다.