javascript에서 undefined와 null의 차이가 헷갈렸는데 유명한 사진을 보고 차이를 확연하게 알 수 있었다.
undefined는 아무것도 지정하지 않았을 때의 기본 값이라고 볼 수 있다.
예를 들어 다음과 같은 상황이다.
// 선언은 했지만 값은 정의되지 않고 할당이 되지 않은 상황
let varb;
typeof varb -> undefined
그럼 다시 null과 비교하면 다음과 같이 obejct가 나온다.
let varb = null; -> object
undefined로 산수를 해보면?
undefined + 10 -> NAN
Not A Number가 나오게 된다.
다음은 null에 대한 코드이다.
!null -> true
!!null -> false
null === false -> false
!null === true -> true
이 코드만 봐도 어지럽다...
( !! 은 형변환 연산자로, 값을 불리언 (Boolean) 값으로 변환한다. )
심지어 js에서 수학 연산으로서의 null은 0 으로 표현된다.
이것이 바로 undefined와의 차이라고 볼 수 있다.