>웹 프론트엔드 >JS 튜토리얼 >JavaScript NaN 특이한 점: 결함이 아닌 기능.

JavaScript NaN 특이한 점: 결함이 아닌 기능.

Linda Hamilton
Linda Hamilton원래의
2025-01-27 18:32:10822검색

JavaScript의 NAN (Not-Number)은 종종 개발자를 혼란스럽게합니다. 그러나 실제로 NAN은 단순한 비정상적인 값이 아니라 잘못된 숫자를 나타내는 JavaScript NaN Quirks: Features, Not Flaws. 센트리 값

입니다. 숫자가 부족하지도 않고 0이 아니지만 숫자 작동에 오류가 있음을 나타내는 명확한 신호입니다. (또는, 나는이 언어를 만드는 사람이 아니다)

난 란 뭐야? nan은 ieee 754 사양에서 시작되었으며, 이는 JavaScript의 숫자의 숫자 수를 정의합니다. 그것은 버그 나 오류가 아니라 고의적으로 언어로 설계된 것의 일부입니다. 당신은 Nan을 적기라고 생각할 수 있으며, "이 작전은 수학을 말할 수 없습니다."

예를 들면 :

당신은 부정적인 수의 제곱근을 계산할 수 없기 때문에 (적어도 실제 범위 내에서) JavaScript는 NAN을 반환합니다. 이것은 "행복은 무엇입니까?"라고 묻는 것과 같습니다.

난의 독특한 행동

사물에 대한 이상한 점은 Nan이 javaScript의 유일한 값이라는 것입니다. 이것은 버그가 아니라 설계된 것입니다. ECMAScript 사양에 따르면 NAN은 다른 값 (자체 포함)과 비교하여 "무질서한"입니다. 이것은 당신이 nan을 확인하기 위해 를 사용할 수 없다는 것을 의미합니다. :

를 사용해야합니다

왜 NAN은 숫자

입니까? 이상하게도, Nan은 기술적으로 디지털 유형 에 속합니다. 예, 당신은 그것을 올바르게 읽었습니다.
<code class="language-javascript">console.log(Math.sqrt(-1)); // NaN</code>
의 결과는 "숫자"입니다. NAN은 IEEE 754 사양의 일부이기 때문에 수치 작업을 정의하기 때문입니다. 수치 연산이 실패하면 ,

또는

를 반환하는 것은 의미가 없습니다. -그들은 숫자가 아닙니다. 대신, JavaScript는 NAN을 반환합니다.

>> 예 숫자 배열의 평균 값을 계산하는 함수를 구축한다고 가정 해 봅시다. 배열에 비수기가 포함되어 있으면 어떻게됩니까?

여기, 문자열 "Three"는 합에 추가 할 수 없으므로 결과는 Nan입니다. 이것은 Nan이 코드에 몰래 들어가서 예기치 않은 행동을 유발하는 방법을 설명하는 좋은 예입니다. 이 이상한 것들이 있지만 Nan은 여전히 ​​강력한 도구입니다. 수치 연산이 실패하면 유일한 의미있는 반환 값 이며이 언어를 사용하는 방법을 배워야합니다.

Nan은 JavaScript의 독특하고 중요한 개념입니다. 값 일뿐 만 아니라 계산에 문제가 있음을 나타내는 신호입니다.
<code class="language-javascript">console.log(NaN === NaN); // false</code>

위 내용은 JavaScript NaN 특이한 점: 결함이 아닌 기능.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.