質問

以下を考えてみましょう

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)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top