해결된 질문
작성
·
145
·
수정됨
0
1:50 질문 드립니다.
let p1 = 1;
let p2 = p1 일 때,p2
를 생성할 때 메모리에 데이터 1
을 추가하여 저장되는 것이 아니라, p1
에 값 1
을 할당 했을 때 메모리에 저장된 1
의 메모리 주소를 재활용 하여 p1
과 p2
가 모두 동일한 데이터를 참조하게 되는 것 아닌가요? p2
생성시 메모리에 데이터 1
을 추가하신 것에 대해 의문이 들어 질문드립니다.
답변 1
1
안녕하세요 이정환입니다.
이것은 자바스크립트 엔진의 구현과 최적화 전략에 따라 다를 수 있습니다.
원칙적으로 원시 타입의 값은변수에 저장될 때 자신만의 메모리 공간에 값을 가지게 됩니다.
즉, 원시 값은 "값에 의한 복사"(copy by value) 방식으로 처리되어, 두 변수가 같은 값을 가지더라도 각각 독립적인 메모리 위치에 그 값을 저장합니다.
그러나 엔진에 따라 최적화 전략을 채택할 때 메모리 효율성을 증가시키기 위해 질문 주신대로 처리하는 경우도 있는걸로 알고 있습니다.
다만 본 강의는 전 입문자를 대상으로 제작되었으므로 보다 일반적이고 원칙적인 내용에 따라 제작되었습니다 😃