NaN ( “숫자가 아님”)을 확인하는 것은 JavaScript에서 자기 동등성을 확인하는 것만큼이나 간단합니다.
자바 스크립트에서 특수 값
NaN
(“숫자가 아님 “을 의미)는 다음과 같이 표현할 수없는 수학적 계산의 결과를 나타내는 데 사용됩니다. 의미있는 숫자. — Joshua Clanton on A Drip of JavaScript
특수 값 NaN
는
함수가 실패하거나 (Math.sqrt(-37)
) 숫자를 구문 분석하려는 함수가 실패 할 때 (parseInt("No integers here")
).
NaN
는 다른 모든 수학 함수를 독살하여 다른 모든 수학 연산을 수행하여 NaN
가됩니다.
JavaScript에서 0으로 나누면
, NaN
아님 :
이 결과는 플로팅 포이 nt는 Javascript보다 일반적으로 정의됩니다. 왜? 대략적으로 1/0은 x가 0에 가까워 질 때 1 / x의 한계이기 때문입니다. 그리고 0/0은 합리적인 해석이 전혀 없기 때문에 NaN
.
어쨌든 NaN은 무엇입니까?
NaN은 전역 개체의 속성입니다. NaN의 초기 값은 Not-A-Number이며 Number.NaN의 값과 동일합니다. — MDN 문서
NaN 확인이 생각보다 어렵습니다
안타깝게도 :
-
typeof NaN
는”숫자 “입니다. -
NaN
는 JavaScript의 다른 모든 값과 동일하지 않습니다.
다음 코드 예제를 확인하십시오.
그러면 수학에 중독 될 NaN
값이 있는지 어떻게 확인합니까?
는 Object.is()
를 사용하는 .toEqual()
방법과 다릅니다.
종료하려면 여기에서 고유 한 값을 찾는 데 사용되는 JavaScript ES6 Set
는 NaN
의 복사본 하나만 보관합니다. 값.
숫자에 대한 단어 .isNan ()
현대 자바 스크립트에는 이미 생각대로 작동하는 Number.isNan()
라는 NaN
를 확인하는 구현이 있습니다. 그것은 것. 예 :
참고 Number.isNan()
는 글로벌 isNan()
함수와 다릅니다.이 함수는 실제 목적이 값을 강제 변환 할 수 없는지 확인하는 것입니다.
완전성을위한 차이점은 다음과 같습니다.
-
isNaN()
는true
값이 현재NaN
이거나 숫자로 강제 변환 된 후NaN
가 될 경우. 즉, 숫자로 강제 변환 할 수있는 값을 받으면 isNaN ()은 false를 반환합니다. -
Number.isNaN()
는 값이 현재NaN
인 경우에만.
따라서 , 자기 평등을 확인하는 것이 가장 좋습니다.