ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript では 0 と -0 が区別されて表現されているにもかかわらず、これらを等しいものとして扱うのはなぜですか?

JavaScript では 0 と -0 が区別されて表現されているにもかかわらず、これらを等しいものとして扱うのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-02 04:49:17671ブラウズ

Why Does JavaScript Treat  0 and -0 as Equal Despite Their Distinct Representation?

0 の性質についての質問: 0 と -0 は同一ですか?

ECMAScript 5.1 仕様では、0 と -0 は別個のものとして定義されています。エンティティ。ここで疑問が生じます: では、なぜ 0 === -0 は true を返すのでしょうか?

IEEE 754 は、符号付きゼロの存在を明らかにします

JavaScript は、IEEE 754 標準を採用して、数字を表します。この標準では、-0 と 0 の両方が認識される「符号付きゼロ」の概念が導入されています。これは、拡張された実数直線のバリエーションであり、無限大のさまざまな解釈 (1/−0 = −∞ および 1/ 0 = ∞) の存在を可能にします。

理論的な区別、実際的な平等

JavaScript の表現では 0 と -0 は理論的には区別されますが、厳密な等価比較ではセクション 11.9.6 のアルゴリズムでは、比較の目的で 0 と -0 が等しいと見なされることが明示的に義務付けられています。この決定は、コーディングを簡素化し、不必要な複雑さを回避するために行われました。

Object.is に関するメモ

ES2015 の導入により、新しい比較方法が導入されました。オブジェクト。は。 Object.is(-0, 0); のように、-0 と 0 を明示的に区別します。 // 間違い。ただし、この方法は通常、符号付きゼロの区別が重要な特定の場合にのみ推奨されます。

以上がJavaScript では 0 と -0 が区別されて表現されているにもかかわらず、これらを等しいものとして扱うのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。