Maison >interface Web >js tutoriel >Pourquoi « 11 » est-il inférieur à « 3 » en JavaScript ?

Pourquoi « 11 » est-il inférieur à « 3 » en JavaScript ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-18 12:58:021082parcourir

Why Does

Anomalies de comparaison de chaînes : pourquoi "11" est inférieur à "3" en JavaScript

Le comportement de comparaison de chaînes de JavaScript peut parfois être contre-intuitif. Un tel exemple est l'inégalité '11' < '3', qui renvoie étonnamment vrai.

En JavaScript, les chaînes sont comparées lexicographiquement caractère par caractère, de gauche à droite. Lorsque les caractères sont différents, la comparaison est basée sur leurs points de code Unicode. Le code ASCII de « 1 » est 49, tandis que celui de « 3 » est 51. Par conséquent, le premier caractère de « 11 » (avec un point de code de 49) est inférieur au premier caractère de « 3 » (avec un code point de 51), ce qui donne l'inégalité '11' < '3'.

Voici quelques exemples supplémentaires pour illustrer ce comportement :

  • '31' < '3' : faux (le premier caractère de '31' est supérieur au premier caractère de '3')
  • '31' < '32' : vrai (le premier caractère de '31' est inférieur au premier caractère de '32')
  • '31' < '30' : faux (le premier caractère de '31' est supérieur au premier caractère de '30')

Il est important de noter que les mêmes règles de comparaison s'appliquent aux lettres. Si « b » n'est pas inférieur à « a », « abc » ne peut pas être inférieur à « aaa ». Cependant, « c » est inférieur à « d », donc « abc » est inférieur à « abd ».

Pour éviter de telles anomalies lors de la comparaison de chaînes sous forme de nombres, il est recommandé de les convertir explicitement à l'aide de l'opérateur « » :

<code class="js">+'11' < '3'  // false</code>

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