Question

Considérez ce qui suit

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
  • Pourquoi est-zéro négatif égal à zéro?
  • Étant donné qu'il est égal pourquoi il se comporte différemment?

Question bonus:

  • La combinaison 0 / -0 la seule combinaison où les objets égaux se comportent différemment?

Je sais NaN / NaN est une combinaison où les objets non égaux ont le même comportement.

Était-ce utile?

La solution

Pourquoi est-zéro négatif égal à zéro?

Parce que IEEE 754 demandes qu'il .

Le 0 / -0 combinaison la seule combinaison où les objets égaux se comportent différemment?

Je crois que oui. En Javascript, seuls les nombres ont un algorithme de === spécial, et 0, -0, NaN sont les seuls cas particuliers là (ECMA-262 §11.9.6).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top