문제

표현식의 결과를 테스트하고 싶다면 함수가 NAN을 반환하면 어떻게 확인합니까?
예 :
$('amount').value.toInt()!='NaN'
^ 작동하지 않으며 반환 된 값이 문자열이 아니라고 가정합니다.
$('amount').value.toInt()!=NaN
^도 작동하지 않는 것 같고 이것은 분명해 보입니다.

그렇다면 반환 된 값이 숫자가 아닌 것을 어떻게 확인합니까?

도움이 되었습니까?

해결책

NAN 값은 그 자체를 포함하여 모든 것에 불평등 한 것으로 정의됩니다. 값이 NAN인지 테스트하십시오 isNaN() 적절하게 기능합니다. (ECMAScript 6 추가 a Number.isNan() 비 번호 주장에 대한 시맨틱이 다른 기능이지만 2015 년 현재 모든 브라우저에서는 지원되지 않습니다).

NAN 값으로 사용할 수있는 두 가지 내장 속성이 있습니다 : Global NaN 재산 (예 : window.NaN 브라우저에서) 및 Number.NaN. 그것은이다 ~ 아니다 언어 키워드. 오래된 브라우저에서 NaN 잠재적으로 혼란스러운 결과와 함께 속성을 덮어 쓸 수 있지만 ECMAScript 5 표준은 쓰레기가 아닌 것으로 만들어졌습니다.

  • @Some에서 의견에서 지적했듯이 글로벌 기능도 있습니다. isfinite () 유용 할 수 있습니다.

다른 팁

NAN에 대한 숫자 작동 결과를 확인하는 가장 좋은 방법은 다음과 같은 방식으로 Aproach를하는 것입니다.

var x  = 0;
var y  = 0;
var result = x/y;  // we know that result will be NaN value
// to test if result holds a NaN value we should use the following code :

if(result !=result){
console.log('this is an NaN value');
} 

그리고 끝났습니다.

비결은 NAN이 다른 값과 비교할 수 없다는 것입니다.

이것은 JavaScript입니다 (좋고 기괴한 언어)

평등 연산자 (== 및 ===)는 NAN에 대한 값을 테스트하는 데 사용할 수 없습니다. 대신 숫자를 사용하십시오 () 또는 isnan ()을 사용하십시오.

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top