JavaScript에서 NaN을 확인하는 방법

NaN ( “숫자가 아님”)을 확인하는 것은 JavaScript에서 자기 동등성을 확인하는 것만큼이나 간단합니다.

Dr. Derek Austin 🥳

팔로우

2019 년 9 월 15 일 · 4 분 읽기

Unsplash의 Rattap 사진

자바 스크립트에서 특수 값 NaN (“숫자가 아님 “을 의미)는 다음과 같이 표현할 수없는 수학적 계산의 결과를 나타내는 데 사용됩니다. 의미있는 숫자. — Joshua Clanton on A Drip of JavaScript

특수 값 NaN

함수가 실패하거나 (Math.sqrt(-37)) 숫자를 구문 분석하려는 함수가 실패 할 때 (parseInt("No integers here")).

NaN는 다른 모든 수학 함수를 독살하여 다른 모든 수학 연산을 수행하여 NaN가됩니다.

Photo by Chris Barbalis on Unsplash

JavaScript에서 0으로 나누면

, NaN 아님 :

이 결과는 플로팅 포이 nt는 Javascript보다 일반적으로 정의됩니다. 왜? 대략적으로 1/0은 x가 0에 가까워 질 때 1 / x의 한계이기 때문입니다. 그리고 0/0은 합리적인 해석이 전혀 없기 때문에 NaN.

어쨌든 NaN은 무엇입니까?

NaN은 전역 개체의 속성입니다. NaN의 초기 값은 Not-A-Number이며 Number.NaN의 값과 동일합니다. — MDN 문서

Unsplash의 Andrew Buchanan 사진

NaN 확인이 생각보다 어렵습니다

안타깝게도 :

  1. typeof NaN는”숫자 “입니다.
  2. NaN는 JavaScript의 다른 모든 값과 동일하지 않습니다.

다음 코드 예제를 확인하십시오.

그러면 수학에 중독 될 NaN 값이 있는지 어떻게 확인합니까?

Unsplash에서 Wolfgang Rottmann의 사진

자기 평등이있는 NaN 확인

“NaN과 NaN 만 동일하지 않은 것으로 비교됩니다. ” — MDN 문서

자바 스크립트에서 NaN를 확인하는 가장 좋은 방법은 자기 평등을 확인하는 것입니다. 기본 제공 항등 연산자 == 또는 ===를 사용합니다.

NaN는 자신과 같지 않습니다. NaN != NaN는 항상 true를 반환합니다.

물론, 코드에서 이러한 NaN 테스트는 항상 읽을 수있는 것은 아니므로 주석을 사용하거나 래퍼 함수를 만드는 것이 좋습니다.

또는 !==NaN를 확인합니다.

Unsplash에서 Erik Mclean의 사진

Object.is ()로 NaN 확인

Object.is() 메서드는 두 값이 동일한 값인지 확인합니다.”— MDN 문서

엄격하고 느슨한 등호 연산자와 달리 ES6 도우미 메서드 Object.is()는 고려하지 않습니다. NaN는 자신과 동일해야합니다.

따라서 ===Object.is()로 바꾸면 걱정할 필요가 없습니다. 특별한 방법으로 NaN 확인에 대해 문제가 해결되었습니다!

다른 기사에서 자바 스크립트에서 Object.is()를 사용하는 방법에 대해 썼습니다.

용어에 대한 참고 사항 — Object.is()는 글로벌 Object 클래스의 함수입니다. 저는 == 또는 ===.

예를 들어 Jest 테스트에서 iv id =를 사용하는 메서드 .toBe() “5b1ff5250c”>

Object.is()를 사용하는 .toEqual() 방법과 다릅니다.

종료하려면 여기에서 고유 한 값을 찾는 데 사용되는 JavaScript ES6 SetNaN의 복사본 하나만 보관합니다. 값.

Unsplash의 Tony Hand 사진

숫자에 대한 단어 .isNan ()

현대 자바 스크립트에는 이미 생각대로 작동하는 Number.isNan()라는 NaN를 확인하는 구현이 있습니다. 그것은 것. 예 :

참고 Number.isNan()는 글로벌 isNan() 함수와 다릅니다.이 함수는 실제 목적이 값을 강제 변환 할 수 없는지 확인하는 것입니다.

완전성을위한 차이점은 다음과 같습니다.

  • isNaN()true 값이 현재 NaN이거나 숫자로 강제 변환 된 후 NaN가 될 경우. 즉, 숫자로 강제 변환 할 수있는 값을 받으면 isNaN ()은 false를 반환합니다.
  • Number.isNaN()는 값이 현재 NaN 인 경우에만.

따라서 , 자기 평등을 확인하는 것이 가장 좋습니다.

사진 : Nick Hillier on Unsplash

Leave a Reply

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다