En Javascript, vous pouvez rencontrer du code qui compare une chaîne provenant d'un champ de texte HTML avec des entiers, comme ceci :
x >= 1 && x <= 999;
Cette condition vérifie si la valeur x du champ de texte est comprise entre 1 et 999 (inclus), et elle fonctionne étonnamment comme attendu. Cependant, x est une chaîne, alors que la condition implique des entiers. Cela ne devrait-il pas entraîner des erreurs ?
La réponse : Coercition des opérateurs
Javascript définit des opérateurs comme >= et <= pour permettre la coercition entre différents types de données. . Voici comment cela fonctionne :
Implications
Ce comportement de coercition peut conduire à des résultats inattendus, tels que :
"90"> "100" car les chaînes sont comparées. Devriez-vous utiliser parseInt() ? L'utilisation de parseInt() pour convertir x en entier avant la comparaison est une question question de préférence. Certains préfèrent s'appuyer sur une coercition implicite, tandis que d'autres préfèrent la conversion explicite pour plus de clarté et de cohérence. Options de conversion Si vous choisissez la conversion explicite, vous disposez de plusieurs options au-delà de parseInt (): Considérez les implications et choisissez l'option qui correspond le mieux aux besoins de votre 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!
"90" < 100 parce que les nombres sont comparés.