자바스크립트에서는 데이터를 저장하는 방식에 따라 원시자료형과 참조자료형 두 가지로 data type을 분류한다.
객체가 아니면서 method를 가지지 않는 자료형.
primitive type은 **number, string, boolean, undefined, symbol, (null) 자료형을 포함한다.
let x= 5 ;
let y= x ;
console.log(x===y) ; // true
y= 10 ;
console.log(x===y) ; // false (x값은 그대로 5)
원시 자료형이 아닌 모든 자료형.
reference type은 함수(function(){}), 배열([]) , 객체({})를 포함한다.
console.log([1,3] === [1,3]) ; //false (reference에서 ===는 주소값이 같은지 확인)
----------------------------------------------------------------------------
let arr1 = [1,2,3] ;
let arr2 = arr1 ; // arr2에 arr1의 주소 할당.
arr2[1] = 5 ; // arr2의 주소값에 해당하는 배열의 1번째 요소가 5로 변경. 1과 2의 주소값이 같으므로 arr1도 [1,5,3]
arr2 = undefined ; // 원시자료형이 할당되었으므로, arr1과 관계 없음.
console.log(arr1) ; // [1,5,3]
console.log(arr2) ; // undefined;