6

次のことを考慮してください

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オブジェクトが同じように動作する組み合わせです。

4

1 に答える 1

7

負のゼロがゼロに等しいのはなぜですか?

IEEE 754 が要求するからです。

0/の組み合わせは-0、等しいオブジェクトの動作が異なる唯一の組み合わせですか?

そう信じる。Javascript では、数値だけが特別な===アルゴリズムを持ち、0、-0、NaN だけが特別なケースです (ECMA-262 §11.9.6)。

于 2011-07-24T15:12:47.677 に答える