ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript では 0 と -0 は等しいとみなされますか?

JavaScript では 0 と -0 は等しいとみなされますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-20 14:39:22915ブラウズ

Are  0 and -0 Considered Equal in JavaScript?

JavaScript では 0 と -0 は同じですか?

ECMAScript 5.1 仕様での区別にもかかわらず、0 と -0 は次のように評価されます。 JavaScript で厳密な等価性を使用すると true になります。

これはなぜですか?

JavaScript は数値表現に IEEE 754 標準を採用しています。この標準によれば、符号付きゼロは 0 (正のゼロ) と -0 (負のゼロ) の 2 つの形式で存在できます。ただし、0 または -0 で除算すると、未定義ではなく、それぞれ ∞ と -∞ になります。

技術的には、0 と -0 のこの区別は重要です。ただし、JavaScript には厳密な等価アルゴリズムの例外があります。セクション 11.9.6 では、厳密な等価比較では 0 と -0 が等しいものとして扱われることが明示的に述べられています。

この例外は、0 と -0 を同等のものとして扱うという論理概念と一致しています。さらに、コード内でこの区別を考慮する必要がなくなるため、開発が簡素化されます。

注:

ES2015 では、新しい比較方法として Object.is が導入されました。緩い等価演算子や厳密な等価演算子とは異なり、Object.is は 0 と -0 を明示的に区別します:

Object.is(-0, +0); // false

以上がJavaScript では 0 と -0 は等しいとみなされますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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