Maison >interface Web >js tutoriel >Pourquoi '1' 1 donne-t-il '11' alors que '1' - 1 donne 0 en JavaScript ?

Pourquoi '1' 1 donne-t-il '11' alors que '1' - 1 donne 0 en JavaScript ?

DDD
DDDoriginal
2024-11-15 09:29:02685parcourir

Why Does

Gestion unique en JavaScript des opérateurs de chaîne et de nombres

En JavaScript, le comportement des opérateurs arithmétiques comme et - peut varier en fonction des types de données impliqué. Cela peut être particulièrement déroutant lorsque vous travaillez avec des chaînes et des nombres.

Différence entre la concaténation de chaînes et la soustraction numérique

Considérez le code suivant :

console.log("1" + 1);
console.log("1" - 1);

Étonnamment, la première ligne affiche "11" tandis que la deuxième ligne affiche 0. Ce comportement apparemment contradictoire peut s'expliquer par la compréhension de la gestion de ces opérateurs par JavaScript.

Concaténation de chaînes (avec)

Lorsque l'opérateur est utilisé avec des chaînes, il effectue une concaténation de chaînes. Dans notre exemple, « 1 » est une chaîne, donc JavaScript convertit également le 1 numérique en chaîne. Cela entraîne la concaténation de "1" et "1", produisant "11".

Soustraction numérique (avec -)

Contrairement à la concaténation de chaînes, la soustraction numérique est applicable uniquement aux nombres. "1" est une chaîne dans notre exemple, donc JavaScript tente de la convertir en nombre avant d'effectuer la soustraction. Cependant, les chaînes ne sont pas reconnues comme des nombres valides en JavaScript. Par conséquent, "1" est traité comme 0 lors de la soustraction, ce qui donne "1" - 1 = 0.

Conclusion

La gestion par JavaScript des opérateurs de chaîne et de nombres peut être parfois contre-intuitif. Il est essentiel de comprendre les règles régissant ces opérateurs, notamment lorsque vous travaillez avec des types de données mixtes, pour éviter un comportement inattendu dans 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!

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