데이터 타입
Primitive Type 의 Reference Type 차이
JavaScript 의 데이터 타입으로는 크게 두 분류로 나눌 수 있다. '원시 자료형'과 '자료 참조형' 이다
지금껏 JavaScript라는 언어를 꽤 사용을 해왔었다고 생각을 했는데 인프런 Core JavaScript 라는 강의의 첫 수업을 들으면서 충격을 금치 못하였다.
분명 Primitive Type 과 Reference Type 은 값을 할당 할 때 주소값을 할당해주는 것과 값 자체를 할당해준다는 것은 알고 있었다. 하지만 다음에 예시를 보고 나는 무엇이 중요한 차이점인지, 어떤 상황에서 이러한 차이점이 명확해지는지 알고 있지 못하였다.
var myNum = 1;
var myObj = { name : 'a' , age : 'b' };
var myNum2 = myNum;
var myObj2 = myObj;
myNum2 = 2;
myOnj2.age = 'c';
console.log("myNum : " , myNum); // myNum : 1
console.log("myObj.age : ", myObj.age); // myObj.age : c
원시 자료형을 복사 하여 값을 새로 할당 해줄시에는 복사를 당한(?) myNum 라는 변수에 아무런 영향을 끼치지 않는다. 하지만 참조 자료형인 경우 주소값으로 저장이 되기 때문에 같은 주소값을 가지고 있는 복사한 객체인 myNum2 의 age 의 값을 다른값으로 바꾸어 줄시 myObj 의 값도 수정이 된다.