NaN === NaN
가 false
으로 평가되는 JavaScript의 특이한 동작은 종종 개발자를 당황하게 합니다. 이 문서에서는 그 이유를 설명하고 NaN 감지를 위한 올바른 방법을 제공합니다.
NaN의 이해
NaN("Not-a-Number")은 유효하지 않거나 정의되지 않은 수학 연산의 결과를 나타냅니다. 예는 다음과 같습니다.
<code class="language-javascript">console.log(0 / 0); // NaN console.log(Math.sqrt(-1)); // NaN</code>
왜 불평등이 발생하는가?
부동 소수점 연산에 대한 IEEE 754 표준에서는 NaN이 자신을 포함하여 어떤 것과도 동일하지 않다고 규정합니다. 이 설계는 유효하지 않은 결과가 유효한 숫자 값인 것처럼 잘못 처리되는 것을 방지합니다. 기본적으로 NaN은 오류 조건을 표시하며 본질적으로 비교할 수 없습니다.
신뢰할 수 있는 NaN 검사
NaN을 처리할 때 직접 비교가 실패합니다. 대신 다음 기능을 사용하세요.
isNaN()
: 이 전역 함수는 값이 NaN인지 또는 NaN으로 강제 변환될 수 있는지 확인합니다.<code class="language-javascript">console.log(isNaN("abc")); // true</code>
Number.isNaN()
: 이 방법은 유형 강제를 피하면서 NaN에 대해 보다 정확한 검사를 제공합니다.<code class="language-javascript">console.log(Number.isNaN(NaN)); // true</code>
요약
NaN === NaN
비교는 NaN이 숫자 값이 아닌 오류 상태를 나타내기 때문에 false
을 생성합니다. NaN을 정확하게 감지하려면 강력하고 안정적인 코드를 위해 isNaN()
또는 Number.isNaN()
을 사용하세요.
출처
위 내용은 NAN === NAN이 JavaScript에서 False를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!