null 은 존재 자체가 없는 완벽한 없음이다. undefined 는 말 그대로 정의되지 않은 상태, 즉 변수가 선언되어서 자바스크립트가 인지할 수는 있으나, 값이 할당되지 않은 이름만 있는 상태라고 할 수 있다.
let mountains;
function isUndefined(test) {
if (test === undefined) {
return "I am undefined!";
}
return "I have contents: " + test;
}
isUndefined(mountains); // "I am undefined!"
<typeof null // "object" (not "null" for legacy reasons)
typeof undefined // "undefined"
null === undefined // false
null === null // true
!null // true
isNaN(1 + null) // false
isNaN(1 + undefined) // true
typeof iAmVariableThatHasNeverBeenDeclared // "undefined"