Thief of Wealth

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
profile on loading

Loading...