
자바스크립트에서 ‘값이 없음’을 나타내는 두 가지 방식인 undefined와 null의 차이점을 자세히 알아보자.

let varb;
typeof varb // 'undefined'
undefined + 123 // NaN (숫자로 변환 불가)
!undefined // true
let varb = null;
typeof null // 'object' (JavaScript의 유명한 버그!)
null + 123 // 123 (null은 0으로 취급)
!null // true
!!null // false
// 동등 비교
null === false // false
!null === true // true
undefined == null // true (느슨한 비교)
undefined === null // false (엄격한 비교)
!undefined === !null // true
// !undefined === !null
// -> true === true
undefined 타입object 타입 (언어적 오류)undefined → NaN
null → 0
Number(undefined) // NaN
Number(null) // 0