primitive
는 객체가 아닌 자료형으로 메서드를 가지지 않는다.object
는 여서 속성의 모음reference
을 저장할 수 있다.==
vs ===
차이점항등 연산자(equality) ==, !=
는 자바스크립트 엔진에서 데이터의 타입을 변경해서 값이 동일한지 확인한다
완전 항등 연산자(strict equality) ===
, !==
는 데이터타입이 다르면 다르다고 인식된다
const stringFive = '5';
const numberFive = 5;
console.log(stringFive == numberFive); // true
console.log(stringFive === numberFive); // false
기본적으로 null, undefined는 저장되어있는 자료가 없다는 뜻으로 혼용할 수 있지만,
null은 값이 없음을 나타내고, undefined는 정의되지 않은 값을 나타낸다.
그래서 항등 연산자로 null과 undefined를 비교하면 동일하다고 인식되지만,
완전 항등 연산자로 둘을 비교하면 데이터 타입이 다르기 때문에 다르다고 나온다.
console.log(null == undefined); // true
console.log(null === undefined); // false
3개모두 자바스크립트에서 변수를 정의할 때 사용하는 키워드이다.
자바스크립트는 동적 언어 dynamic language
이기 때문에 정적 언어와는 달리 변수를 정의할 때 자료형을 정의할 필요가 없다
TDZ
에 있다.Mutable Data Type
Immutable Data type