Maison > interface Web > js tutoriel > Pourquoi '2' > '10' en Javascript ?

Pourquoi '2' > '10' en Javascript ?

Susan Sarandon
Libérer: 2024-11-19 15:24:02
original
627 Les gens l'ont consulté

Why Does "10" en Javascript ? " /> "10" en Javascript ? " />

Quandaire de comparaison de chaînes Javascript/entiers : pourquoi "2" > "10" ?

La programmation Javascript a une bizarrerie particulière avec les comparaisons de chaînes et d'entiers. Bien que l'on puisse supposer que les chaînes numériques sont traitées comme des entiers, ce n'est pas toujours le cas, ce qui entraîne des conséquences inattendues. résultats.

Considérez le code déroutant suivant :

console.log("2" > "10");
Copier après la connexion

Au grand étonnement de beaucoup, ce code est évalué comme vrai. Pourquoi « 2 » serait-il supérieur à « 10 » ?

.

Le problème sous-jacent réside dans le traitement inhérent par Javascript des chaînes et des entiers. Lors de la comparaison de deux chaînes, Javascript effectue une comparaison lexicographique basée sur. leurs points de code Unicode Dans ce cas, le point de code ASCII pour « 2 » (50) est inférieur au point de code pour « 10 » (56), ce qui fait que « 2 » est considéré comme « inférieur à » « 10 » dans un. comparaison de chaînes.

Pour résoudre ce dilemme et comparer avec précision les valeurs numériques sous forme d'entiers, il est crucial d'analyser manuellement la chaîne en un entier. Cela peut être réalisé à l'aide de la fonction parseInt, qui. prend une chaîne et une base de base comme arguments.

Par exemple, pour convertir la chaîne "2" en un entier et effectuer une comparaison significative avec "10":

alert(parseInt("2", 10) > parseInt("10", 10));
Copier après la connexion

Ce code est correctement évalué à faux, car "2" est en effet inférieur à "10" lorsque les deux sont traités comme des entiers.

En employant une analyse méticuleuse des chaînes, on peut éviter les pièges du comportement déroutant de comparaison chaîne/entier de Javascript et garantir des comparaisons numériques fiables.

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