JavaScript를 공부 하다보면 변수에 대해 알게 된다. 그 중에 하나가 undefined와 null인데 둘다 없다는 의미를 가지고 있지만 미묘한 차이가 있으니 잘 구분을 해보자.

undefined: 있는지 없는지도 모르는 상태.
해당 변수가 비어있는 상태를 의미한다. 그렇지만 이것을 완전히 없다고 인정 할 수는 없다. boolean으로 형변환 할시 false가 출력된다.
let isFree;
console.log(isFree); // undefined
console.log(typeof isFree); //undefined
null: 확연히 비어있는 상태
undefined는 확실하지 않지만 null은 비어 있다고 의미를 부여해 주었다.
let isFree = null;
console.log(isFree); //null
console.log(typeof isFree); //object
NaN(Not a Number): 말 그대로 숫자가 아니다
숫자와 다른 자료형을 계산 할 경우에 발생한다.