: 고정된 저장공간을 차지하는 data type
객체가 아니면서 method를 가지지 않는 7가지 타입
number
string
boolean
null
undefined
(+ bigint, symbol)
let variable = value;
value
) 자체가 저장 된다.let min = 'young'; // 변수 min에 'young' 할당
let kim = min; // 변수에 담겨있던 값을 저장한다
console.log(kim)
>'young'
let kim = 123; // 변수 kim을 123으로 재할당
console.log(kim);
>123
console.log(min);
>'young' // 변수 min의 값은 변경되지 않는다
: 동적(dynamic)으로 변하는 저장공간(= heap)
을 사용하는 data type
let ref = [1, 2, 3];
let data = { month : 1, date : 31 };
reference
)가 할당 된다💡참조 자료형의 비교
console.log(123 === 123) // 원시 자료형 number의 strick equality
>true
console.log({m : 'y'} === {m : 'y'}) // 참조 자료형 object의 strick equality
>false
// 자바스크립트에서는 참조 자료형 각각의 보관함을 만든다
// strick equality는 그 주소값이 같은지를 비교하기 때문에
// false를 반환한다
💡참조 자료형의 복사
let mercy = {may: 12, spring : 'sunny'};
let today = mercy; // --->객체 today와 mercy는 보관함의 주소(reference)를 공유하게 된다
today['may'] = 3 // 보관함의 요소를 변경하면 주소를 공유하는 변수들에 영향이 간다
console.log(mercy);
> {may: 3, spring: 'sunny'} // --->mercy의 요소가 변경되었다
let thu = [5, 12];
let wed = thu;
console.log(wed);
>[5,12] // wed === thu 인 상태
let wed = 5; //---> 원시 자료형으로 변경하면, thu의 값도 변화할까?
console.log(wed);
>5
console.log(thu);
>[5,12] //---> 변화하지 않는다
💡각각의 자료형으로 분리된다