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

Pourquoi ` 0 === -0` est-il évalué à True en JavaScript, alors que `Object.is(-0, 0)` renvoie False ?

Linda Hamilton
Libérer: 2024-11-22 07:04:11
original
464 Les gens l'ont consulté

Why Does ` 0 === -0` Evaluate to True in JavaScript, While `Object.is(-0,  0)` Returns False?

La différence et l'égalité de 0 et -0

La spécification ECMAScript 5.1 fait la distinction entre 0 et -0, soulevant la question de savoir pourquoi 0 === -0 est évalué à vrai.

IEEE 754 Standard

JavaScript utilise la norme IEEE 754 pour représenter les nombres. Selon IEEE 754, le zéro signé permet un zéro positif (0) et un zéro négatif (-0). Cette distinction est requise pour l'arithmétique à virgule flottante, car 1/-0 = -∞ et 1/ 0 = ∞.

Algorithme de comparaison d'égalité stricte

Malgré les problèmes techniques distinction, la section 11.9.6 de la spécification définit explicitement le comportement de l'algorithme de comparaison d'égalité stricte pour 0 et -0 :

  • Si x est 0 et y est -0, renvoie vrai.
  • Si x est -0 et y est 0, renvoie vrai.

Raisonnement logique et pratique

Logiquement, il est logique de traiter 0 et -0 comme égaux. Les distinguer compliquerait le code, surtout lorsque l'on travaille avec zéro.

Méthode de comparaison Object.is

ES2015 a introduit Object.is pour des comparaisons plus précises. Object.is fait explicitement la distinction entre 0 et -0 :

Object.is(-0, +0); // false
Copier après la connexion

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