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

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

Linda Hamilton
Libérer: 2024-10-18 12:36:03
original
822 Les gens l'ont consulté

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
Copier après la connexion

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

 +'11' < '3' // 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
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