ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript NaN の癖: 欠陥ではなく機能。

JavaScript NaN の癖: 欠陥ではなく機能。

Linda Hamilton
リリース: 2025-01-27 18:32:10
オリジナル
827 人が閲覧しました

JavaScript NaN Quirks: Features, Not Flaws. JavaScriptの

nan(Not-Anumber)が開発者を混乱させることがよくあります。しかし、実際には、NANは単純な異常な値ではなく、無効な数を表す

Sentry Valueです。数字の不足でもゼロでもありませんが、数値操作にエラーがあることを示す明確な信号です。 (または、私は知りません、私はこの言語を作成する人ではありません)

ナンとは?

nanは、

IEEE 754仕様に由来します。それはバグやエラーではなく、言語で意図的に設計されたものの一部です。ナンを赤い旗と考えることができ、「ねえ、この操作は数学は言えない」と促します。

たとえば:

平方根の負の数を計算することはできません(少なくとも実際の範囲内)ので、JavaScriptはNANを返します。これは「幸せは何色ですか?」と尋ねるようなものです。これは意味のない答えです。
<code class="language-javascript">console.log(Math.sqrt(-1)); // NaN</code>
ログイン後にコピー

ナンの独特の行動

物事についての奇妙なことは、ナンが

javascriptの唯一の値であるということです。

これはバグではなく、設計されています。 ECMAScriptの仕様によれば、NANは他の値(それ自体を含む)に比べて「無秩序」です。これは、を使用してNANを確認できないことを意味します。

を使用する必要があります
<code class="language-javascript">console.log(NaN === NaN); // false</code>
ログイン後にコピー

なぜナンは数字===なのか Number.isNaN()奇妙なことに、ナンは技術的には

デジタルタイプ
<code class="language-javascript">console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN("Hello")); // false</code>
ログイン後にコピー
に属しています。はい、あなたはそれを正しく読みます。

の結果は「番号」です。これは、NANが数値操作を定義するIEEE 754仕様の一部であるためです。数値操作が失敗した場合、

、または - それらは数字ではないことを返すことは意味がありません。代わりに、JavaScriptはNANを返しますが、これはまだ数字であり、無効な数字だけです。 typeof NaNundefined数字配列の平均値を計算する関数を構築しているとします。アレイに非数が含まれている場合はどうなりますか? null -1

ここで、文字列「3」を合計に追加できないため、結果はnanです。これは、ナンがコードに潜入し、予期しない動作を引き起こす方法を説明する良い例です。

これらの奇妙なことはありますが、ナンは依然として強力なツールです。数値操作が失敗した場合、それは唯一の意味のある返品値であり、この言語の使用方法を学ぶ必要があります。

<code class="language-javascript">function calculateAverage(arr) {
  const sum = arr.reduce((acc, val) => acc + val, 0);
  return sum / arr.length;
}

console.log(calculateAverage([1, 2, "three", 4])); // NaN</code>
ログイン後にコピー
nanは、JavaScriptのユニークで重要な概念です。それは単なる値だけでなく、信号でもあり、計算に問題があることを示しています。

以上がJavaScript NaN の癖: 欠陥ではなく機能。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート