JavaScript에서 원시 타입의 데이터는 객체가 아니면서 메서드를 가지지않는 6가지의 타입
string, number, bigint, boolean, undefined, symbol, (null)
원시자료형은 모두 "하나"의 데이터를 담고있다.
JavaScript에서 원시 자료형이 아닌 모든 것은 참조 자료형이다.
배열과 객체, 함수가 대표적
참조자료형은 하나의 데이터가 아닌 여러게의 데이터가 담기게 된다.
예를 들어,
console.log('codestates' === 'codestates'); //true
console.log(3.14 === 3.14); //true
console.log([1,2,3] === [1,2,3]); //false
console.log({ foo: 'bar' } === { foo: 'bar' }); //false
위 코드를 보면 위에 두줄은 true를 아래 두줄은 false를 반환하는걸 볼 수 있는데
이는, 문자열과 숫자는 원시형 데이터 타입이고
배열과 객체는 참조형 데이터 타입이기때문인데
참조자료형의 ===
는 주소값이 같은지 확인하기때문에 두 참조자료형의 주소값이 다르다고 판단을 내리는 것이다.
동일하게
[] === []
도 true가 나오지 않는다.