Maison  >  Article  >  interface Web  >  Pourquoi les chaînes JavaScript « 11 » et « 3 » sont-elles considérées comme vraies dans une comparaison lexicographique ?

Pourquoi les chaînes JavaScript « 11 » et « 3 » sont-elles considérées comme vraies dans une comparaison lexicographique ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-18 12:36:03753parcourir

Why Do JavaScript Strings

Comparaison lexicographique des chaînes

La comparaison entre les chaînes "11" et "3" dans l'extrait de code donné suscite la curiosité en raison de résultat inattendu de vrai. Une hypothèse triviale pourrait être que la comparaison soit basée sur la longueur des chaînes, mais ce n'est pas le cas. Au lieu de cela, les chaînes JavaScript sont comparées de manière lexicographique.

La comparaison lexicographique fonctionne en comparant les séquences de points de code Unicode qui représentent les caractères des chaînes. Cela commence par comparer le premier caractère de chaque chaîne ; si ces caractères sont égaux, il procède à la comparaison des seconds caractères, et ainsi de suite. La comparaison cesse lorsque des caractères avec des points de code différents sont rencontrés ou lorsque l'une des chaînes manque de caractères.

Dans le cas de "11" et "3", les premiers caractères sont '1' et '3 '. Étant donné que « 1 » a un point de code Unicode inférieur à « 3 », « 11 » est inférieur à « 3 » selon la comparaison lexicographique. Ceci explique le résultat surprenant : une chaîne plus longue est considérée comme inférieure à une chaîne plus courte car elle contient un caractère avec un point de code inférieur.

Exemples :

'11' < '3' // true
'31' < '3' // false
'31' < '32' // true
'31' < '30' // false
'abc' < 'aaa' // false
'abc' < 'abd' // true

Pour convertir explicitement une chaîne en un nombre, utilisez l'opérateur unaire plus ( ):

 +'11' < '3' // false

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