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.
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!