Maison > interface Web > js tutoriel > Pourquoi JavaScript concatène-t-il au lieu d'ajouter avec l'opérateur Plus ( ) ?

Pourquoi JavaScript concatène-t-il au lieu d'ajouter avec l'opérateur Plus ( ) ?

Linda Hamilton
Libérer: 2024-10-28 23:39:30
original
915 Les gens l'ont consulté

Why Does JavaScript Concatenate Instead of Adding with the Plus ( ) Operator?

Concaténation versus sommation avec l'opérateur Plus ( ) en JavaScript

Un problème courant rencontré en JavaScript est la concaténation inattendue de variables au lieu de leurs somme prévue lors de l’utilisation de l’opérateur plus ( ). Par exemple, lorsque le code suivant est exécuté, en supposant que i est initialisé à 1 :

divID = "question-" + i+1;
Copier après la connexion

Le résultat obtenu est "question-11" au lieu de "question-2".

Ceci Ce phénomène se produit parce que l'opérateur plus ( ) gère à la fois la concaténation et l'addition. Lorsqu'il est appliqué à différents types d'opérandes, l'opérateur donne la priorité à la concaténation si un opérande est une chaîne. Par conséquent, les opérations sont traitées de gauche à droite :

  1. "question-" i : Puisque "question-" est une chaîne, une concaténation se produit, ce qui donne "question-1".
  2. "question-1" 1 : Encore une fois, la concaténation se produit en raison de l'opérande de chaîne, donnant "question-11".

Pour obtenir la sommation souhaitée, placez l'expression numérique entre parenthèses :

var divID = "question-" + (i+1);
Copier après la connexion

Cela garantit que l'addition de i et 1 est effectuée en premier, avec le résultat (2) ensuite concaténé avec "question-". Le résultat est la « question 2 » comme prévu.

Ce comportement est répandu dans divers langages de programmation, pas seulement dans JavaScript. Il est essentiel de se rappeler que l'ordre dans lequel les opérations sont exécutées est important, en particulier lorsqu'il s'agit de plusieurs types d'opérandes et d'opérateurs. L'utilisation de parenthèses contrôle explicitement l'ordre d'évaluation, évitant ainsi les résultats inattendus.

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