"10" ? La programmation Javascript a une bizarrerie particulière avec les comparaisons de chaînes et d'entiers...."/> "10" ? La programmation Javascript a une bizarrerie particulière avec les comparaisons de chaînes et d'entiers....">

Maison  >  Article  >  interface Web  >  Pourquoi '2' > '10' en Javascript ?

Pourquoi '2' > '10' en Javascript ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-19 15:24:02573parcourir

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");

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));

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!

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
Article précédent:Déclaration de module dans TSArticle suivant:Déclaration de module dans TS