에서 NaN 에 대한 테스트의 문제점 원래 A Drip of JavaScript 뉴스 레터에 게시되었습니다.
에서 자바스크립트는 특별한 값을NaN
(“를 의미하지 않을 수”)을 사용하여 결과를 나타낼 수학적 계산할 수 없는 표현으로 의미 있는 번호입니다., 예를 들어,
가능성이 있으로 실행NaN
때 사용하는parseInt
또는parseFloat
을 추출하려면에서 번호로 문자열로,이 예에서는 다음과 같습니다.
그 결과로,자바 스크립트 개발자들은 종종 필요한 테스트 결과 변수를 참조를 포함하는지 여부NaN
또는지는 의미심장한 값을 대신 합니다. 값이NaN
인지 확인하는 몇 가지 다른 방법이 있지만 불행히도 대부분은 신뢰할 수 없습니다., 그들 중 일부를 걸어보고 그들이 어떻게 실패하는지 보자.논리적 인 것은 결과가NaN
와 같은지 확인하는 것입니다.나는 이것이 어떻게 작동하는지 잘 모르겠습니다. JavaScript 에서NaN
는 자체와 같지 않은 유일한 값이라는 구별이 있습니다. 즉 우리가 할 수 있습니다”t 하는지 여부를 알아 값은NaN
에 의해 확인 평등을NaN
기 때문에 대답은 항상 있을 것이 아니다.그 밖의 무엇을 시도 할 수 있습니까? 내장 된isNaN
함수는 어떻습니까?,나는 이것이 어떻게 작동하는지 잘 모르겠습니다. 이 하나가 작동하는 것 같습니다. 그리고 사실 그것은 어떤 상황에서도 작동합니다. 그러나,그럼에도 불구하고 이름을 목적으로isNaN
기능이 아니다”t 여부를 확인하는 값은NaN
. 대신,목적은 값을 숫자로 강제 할 수 없는지 여부를 확인하는 것입니다. 이 때문에 오 탐지를 반환 할 수 있습니다., 다음 사항을 고려합니다:
는 확신이 없으면 당신을 다루는 것입니다 숫자와 함께 또는NaN
,isNaN
기능이 아니다”t 매우 적합니다.
그러나,그것을 밝혀 ECMAScript6 만들 새로운 기능에 대한 특정 목적지 여부를 확인하는 값은NaN
. 혼동을 일으킬 정도,이 기능은 또한이라는isNaN
지만,그것은 첨부된Number
아닌 객체에 직접 글로벌 객체입니다., 그것처럼 사용할 수 있습니다:
우수! 우리는”실제로 작동하는 방법을 얻었습니다. 불행히도Number.isNaN
는 최신 버전의 FireFox 및 Chrome 에서만 사용할 수 있으며 ie 또는 다른 주요 브라우저에서 isn”t 아직 지원됩니다. 이것은 미래에 실행 가능한 접근법 일지 모르지만,지금 당장은 매우 좁은 상황에서만 사용될 수 있습니다.대신
어쩌면 우리는NaN
“s 유형을 확인할 수 있습니까?나는 당신이 그것을 올바르게 읽었다는 것을 알고 있습니다., JavaScript 에서NaN
값은number
유형입니다. 그”매우 도움이 될 것 아니에요.
그래서 우리는 무엇을 할 수 있는 뭔가를 얻으려면 제대로 작동하지만,또한 가능한 크로스 브라우저는 무엇입니까? NaN
가 JavaScript 에서 자체와 같지 않은 유일한 값이라고 언급 한 방법을 기억하십니까? 우리는 그 사실을 활용할 수 있습니다.
현재 최고의 방법이 여부를 확인하는 값은NaN
은 여부를 확인하려면 동등하지 않습니다. 그렇다면NaN
라는 것을 알고 있습니다.,
의 물론,이 기술을 사용하지 않는”t 는 특히 읽을 수 있는,그래서 그것은 일반적인 포장으로 유틸리티는 방법입 통신 의향이 더욱 선명하게 보이도록 합니다. 밑줄과 소호 대시 모두 구현을 제공합니다.
나는 이것이 당신이NaN
의 특질에 대해 더 잘 이해하는 데 도움이 되었기를 바랍니다.
읽어 주셔서 감사합니다!
조쉬 클랜튼