원시타입데이터
JavaScript에서 원시 타입의 데이터(primitive data types; 원시 자료형)는 객체가 아니면서 method를 가지지 않는 6 가지의 타입을 말한다
string, number, bigint, boolean, undefined, symbol, (null)
각변수간에 원시타입을 복사할 경우엔 데이터 값이 복사 돼서 기존의 데이터에 영향 없다
원시 자료형의 보관함인 변수에는 하나의 원시 자료형만 담을수 있다
참조타입 데이터
즉 원시 자료형이 할당될 때에는 변수에 값(value) 자체가 담기고, 참조 자료형이 할당될 때는 보관함의 주소(reference)가 담긴다.
그래서 참조 자료형은 기존에 고정된 크기의 보관함이 아니라, 동적으로 크기가 변하는 특별한 보관함을 사용할 수 있습니다.
풀이 : 값의 크기가 수시로 변하는 것을 처리하기 위해서 참조 자료형은 heap이라는 별도의 메모리 저장 공간을 사용한다.
참조 자료형의 ===(strict equality)는 주소값이 같은지를 확인한다. 그렇기 때문에 두 참조 자료형의 주소값은 다르다고 판단을 내릴 수 있다.
console.log([1,2,3] === [1,2,3]); //false
컴퓨터가 위 코드를 읽으면서, 이미 두 개의 heap 저장 공간의 주소를 확보했다. 다만 우리는 눈으로 확인하지 못할 뿐이다. 배열([])과 객체({}) 등 참조 자료형을 읽을 때, 미리 주소값과 메모리 값을 잡아둔다고 생각하면 편하다. 그러므로 [] === [] 도 true가 나오지 않는 것이다.
출처 [codestates]