undefined는 변수는 존재하지만 값을 저장하지 않아서 타입을 모르는 케이스이다.
let message1; if (message1 == undefined) console.log('변수는 존재하지만 값은 없다);
let message2 = 20; message2 = undefined; // 존재하는 변수를 undefined로 만들 수 있다.
null은 특정 객체를 가리키지 않음을 지정할 때 null을 사용합니다.
null도 직접 값을 비교할 수 있습니다.let message3 = null; if (message3 == null) console.log("message3은 null 상태임"); console.log(typeof(null)); // typeof 연산자를 null에 사용하면 object를 반환함.
둘의 typeof의 연산자의 값은 다르지만 동치연산자(==)를 사용하면 두 값이 같다고 간주한다.
console.log(undefined == null)); // true console.log(undefined === null)); // false
그렇기 때문에 엄격한 동치 연산자를 사용해야 합니다.
undefined
는 시스텝 수준에서 예기치 않은 상황에 발생한, 오류성 값 부재를 표현할 때 사용합니다.
null
은 프로그램 수준에서 예상 가능한 값 부재 상황을 표현하고 싶을 때 사용합니다.
Reference