質問
以下を考えてみましょう
var l = console.log.bind(console);
l(-0); // 0
l(0); // 0
l(0 === -0); // true
l(0 == -0); // true
l(1 / 0); // Infinity
l(1 / -0); // -Infinity
- ネガティブゼロがゼロに等しいのはなぜですか?
- それが平等であることを考えると、なぜそれが異なって振る舞うのですか?
ボーナス質問:
- それは
0
/-0
等しいオブジェクトの動作が異なる唯一の組み合わせ?
知っている NaN
/NaN
非等しいオブジェクトが同じように動作する組み合わせです。
解決
ネガティブゼロがゼロに等しいのはなぜですか?
なぜなら IEEE 754はそれを要求します.
それは
0
/-0
等しいオブジェクトの動作が異なる唯一の組み合わせ?
そう信じる。 JavaScriptでは、数字のみが特別です ===
アルゴリズム、および0、-0、ナンは唯一の特別なケースです(ECMA -262§11.9.6)。
所属していません StackOverflow