2013-10-08 5 views
0

null이 아닌 동안 undefined 값이 javascript에서 Finite로 간주되는 이유는 무엇입니까?왜 isFinite (정의되지 않음)! = isFinite (null)입니까?

이것은 매우 기본적인 질문이며 내 googlefoo (너무 많은 소음)를 저지했습니다.

isFinite(undefined); // false 
isFinite(null); // true 

null과 undefined가 동일한 방식으로 처리 될 것으로 예상하므로 이해가되지 않습니다.

답변

1

isFinite에 인수가 NaN으로 강제 변환 경우

반환 거짓 (수), + ∞, 또는 -∞, 그렇지 않으면 true를 반환합니다. Number() 및 사용

isFinite 변환 입력 :

Number(undefined); //== NaN 
Number(null); //== 0 

이유는 정의되지 거짓 및 널은 isFinite에 대해 사실이다.

isFinite(!undefined); // true 

정의되지 않은 때문에가 NaN 그것을 부정에 유한 1로 변환 :

당신은 시도하십시오.