Maison > interface Web > js tutoriel > Pourquoi JavaScript traite-t-il 0 et -0 comme égaux malgré leur représentation distincte ?

Pourquoi JavaScript traite-t-il 0 et -0 comme égaux malgré leur représentation distincte ?

Barbara Streisand
Libérer: 2024-12-02 04:49:17
original
671 Les gens l'ont consulté

Why Does JavaScript Treat  0 and -0 as Equal Despite Their Distinct Representation?

Enquête sur la nature de 0 : 0 et -0 sont-ils identiques ?

La spécification ECMAScript 5.1 a défini 0 et -0 comme étant distincts entités. Cela soulève la question : pourquoi alors 0 === -0 renvoie vrai ?

IEEE 754 dévoile l'existence de zéros signés

JavaScript utilise la norme IEEE 754 pour représentent des nombres. La norme introduit le concept de « zéro signé », où -0 et 0 sont reconnus. Il s'agit d'une variante de la droite numérique réelle étendue, permettant l'existence de différentes interprétations de l'infini (1/−0 = −∞ et 1/ 0 = ∞).

Distinction théorique, égalité pratique

Bien que 0 et -0 soient théoriquement distincts dans la représentation Javascript, la comparaison stricte d'égalité L'algorithme de la section 11.9.6 exige explicitement que 0 et -0 soient considérés comme égaux à des fins de comparaison. Cette décision a été prise pour simplifier le codage et éviter une complexité inutile.

Une note sur Object.is

Avec l'introduction d'ES2015, une nouvelle méthode de comparaison a été introduite : Object .est. Il fait explicitement la distinction entre -0 et 0, comme dans Object.is(-0, 0); // FAUX. Cependant, cette méthode n'est généralement recommandée que pour des cas précis où la distinction entre les zéros signés est cruciale.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal