Maison > interface Web > js tutoriel > le corps du texte

En quoi 0 et -0 diffèrent-ils en JavaScript, malgré une stricte égalité qui les traite comme égaux ?

DDD
Libérer: 2024-11-19 21:30:03
original
694 Les gens l'ont consulté

How Do  0 and -0 Differ in JavaScript, Despite Strict Equality Treating Them as Equal?

La distinction entre 0 et -0 dans ECMAScript 5.1

La spécification ECMAScript 5.1 fait explicitement la distinction entre 0 et -0, bien qu'elles soient évaluées comme la même valeur en comparaison. Cette distinction découle de l'implémentation des nombres à virgule flottante en JavaScript utilisant la norme IEEE 754.

La norme IEEE 754 requiert à la fois 0 et -0 pour des raisons techniques liées aux opérations numériques et à la division par zéro. Cependant, malgré cette distinction technique, la comparaison d'égalité stricte en JavaScript traite 0 et -0 comme égaux.

Selon l'algorithme de comparaison d'égalité stricte défini dans la spécification ECMAScript 5.1, si les deux opérandes sont des nombres, la comparaison sera renvoie vrai même si l'un est 0 et l'autre est -0. Ce cas particulier est explicitement défini dans l'algorithme :

- If x is +0 and y is −0, return true.
- If x is −0 and y is +0, return true.
Copier après la connexion

Cela tient compte de raisons pratiques, car la différenciation entre 0 et -0 nécessiterait potentiellement une manipulation particulière dans le code JavaScript. Pour les distinguer explicitement, la méthode de comparaison Object.is introduite dans ES2015 peut être utilisée, car elle renvoie false lors de la comparaison de 0 à -0.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal