1) undefined
: 값이 없다, 초기화 한적이 없다 라는 의미, 즉 기본 타입
typeof undefined 는 undefined이다.
또한 undefined를 Boolean 값으로 사용할 경우, false 취급한다.
new Number(undefined) 는 NaN이 된다.
2) null
: 없는 값이다.
Boolean으로는 false 취급한다. (즉 ,null == undefined이고 null !== undefined 이다.)
typeof null은 object이다.
new Number(null)은 0이다.
3) NaN
: 이 값은 숫자가 아니다.
Boolean 값으로 사용할 경우, false 취급한다.
console.log(NaN==undefined);//false
console.log(NaN==null);//false
console.log(undefined==null);//true
이다.
또한
console.log(NaN===NaN);//false
console.log(NaN!==NaN);//true
이다.
그래서 이 값이 NaN인지 확인하려면, isNaN() 메소드를 사용하야야 한다.
근데 typeof NaN은 Number이다.
정리
1.typeof 사용시 undefined는 undefined, null은 object, NaN은 number가 반환된다.
2.NaN==undefined는 false다.
3.NaN==null은 false다.
4.null==undefined는 true다.
5.NaN과 null과 undefined는 일반적으로 비교할땐 false로 취급한다.
6.null은 숫자의 경우 0이 된다.
7.undefined는 숫자의 경우 NaN이 된다.
6.NaN의 비교는 isNaN으로 하지 않는다면 결과를 예측할 수 없다.
'개발 > FrontEnd Interview' 카테고리의 다른 글
attribute vs property (0) | 2021.04.03 |
---|---|
전역/함수/메소드에서의 this에 관하여 (0) | 2021.04.03 |
Window객체와 BOM (0) | 2021.04.03 |
실행 컨텍스트란? (2) | 2021.04.02 |
전역 변수를 지양해야하는 이유 (0) | 2021.03.29 |