Maison  >  Article  >  interface Web  >  0 et -0 sont-ils considérés comme égaux en JavaScript ?

0 et -0 sont-ils considérés comme égaux en JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-20 14:39:22914parcourir

Are  0 and -0 Considered Equal in JavaScript?

0 et -0 sont-ils identiques en JavaScript ?

Malgré la distinction faite dans la spécification ECMAScript 5.1, 0 et -0 sont évalués comme true en utilisant l'égalité stricte en JavaScript.

Pourquoi cela ?

JavaScript adopte la norme IEEE 754 pour la représentation numérique. Selon cette norme, le zéro signé peut exister sous deux formes : 0 (zéro positif) et -0 (zéro négatif). Cependant, la division par 0 ou -0 donne respectivement ∞ et -∞, plutôt qu'indéfini.

Techniquement, cette distinction entre 0 et -0 est cruciale. Cependant, JavaScript fournit une exception dans son algorithme d'égalité stricte. La section 11.9.6 indique explicitement que 0 et -0 sont traités comme égaux dans les comparaisons d'égalité stricte.

Cette exception s'aligne sur la notion logique de traiter 0 et -0 comme équivalents. De plus, cela simplifie le développement en éliminant le besoin de prendre en compte cette distinction dans le code.

Remarque :

ES2015 a introduit Object.is comme nouvelle méthode de comparaison. Contrairement aux opérateurs d'égalité lâche et stricte, Object.is fait expressément la distinction entre 0 et -0 :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn