ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript では 0 と -0 が区別されて表現されているにもかかわらず、これらを等しいものとして扱うのはなぜですか?
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 サイトの他の関連記事を参照してください。