자바스크립트가 제공하는 7가지 데이터 타입은 크게 원시 타입과 객체 타입으로 구분할 수 있다.(6장)
원시 타입(primative type)의 값 🌟
: 맨 처음 할당된 값이 변수에 할당된다. primative 는 original 과 동의어다.
1) 변경 불가능한 값 (immutable value)
2) 원시 값 변수에 할당 시 변수(확보된 메모리 공간)에는 "실제 값"이 저장된다.
3) 값에 의한 전달(pass by value) 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달된다.
객체 타입(object/reference type)의 값 🌟
: {},[], function 등으로, 변수에 해당 타입의 값이 직접 저장되는게 아니라 그 값이 담긴 메모리셀의 주소가 할당된다.
1) 변경 가능한 값(mutable value)
2) 객체를 변수에 할당하면 변수(확보된 메모리 공간)에는 참조 값(메모리 공간 주소)이 저장된다.
3) 참조에 의한 전달(pass by reference): 객체를 가르키는 변수를 다른 변수에 할당하면 원본의 참조 값이 전달된다.
잠깐! 값에 의한 전달 과 참조에 의한 전달
정확히 말하자면 둘다 값에 의한 전달이다. 다만 메모리 공간 안에 저장된 값이 실제 값이냐 메모리 공간 주소(참조값)이냐의 차이일 뿐.
이러한 사실 때문에 어떤 곳에서는 뭉뚱그려 "공유에 의한 전달" 이라고 하기도 한다.
x