1. 서론
- null 과 undefined 타입은 "빈 값, 존재하지 않는 값"이라는 뜻을 가지고 있지만, 큰 차이가 있다.
2. Null
- null은 비어 있는 변수, 값이 존재하지 않음을 의미한다. typeof를 통해 자료형을 확인하면 object를 반환하지만, 자바스크립트 기존 이슈로 인한 결과이니 객체형으로 오해하지 않도록 주의해야하 한다.
3. undefined
- undefined는 변수가 정의되었으나 아무 값도 할당받지 않음을 의미한다. 예를 들어 undefined는 변수에 어떤 값도 대입하지 않거나, 함수에서 명시적으로 값을 반환하지 않았을 때 undefined 값이 판정되고 반환된다.
let value = null;
console.log(value);
console.log(typeof value);
let value2;
console.log(value2);
console.log(typeof value2);
value == value2;
value === value2;
- 둘 다 원시 자료형으로 분류되며, 예제를 살펴보면 마지막에 null과 undefined를 동등 연산자인 == 로 비교해보면 자료형 비교까지 이루어지지 않기 때문에 true를 반환하다. 하지만, 자료형까지 엄격히 검사하는 일치 연산자 === 로 비교하면 자료형이 달라서 false가 반환된다.