Maison > interface Web > js tutoriel > Pourquoi JavaScript concatène-t-il au lieu d'ajouter des nombres ?

Pourquoi JavaScript concatène-t-il au lieu d'ajouter des nombres ?

Barbara Streisand
Libérer: 2024-12-22 02:53:18
original
998 Les gens l'ont consulté

Why Does JavaScript Concatenate Instead of Adding Numbers?

Concaténation au lieu de sommation dans l'addition numérique

Dans certains scénarios de programmation, tenter de sommer deux valeurs numériques peut entraîner un comportement inattendu où le les nombres sont concaténés au lieu d’être ajoutés. Ce problème survient lorsque les valeurs d'entrée sont traitées comme des chaînes plutôt que comme des nombres.

Considérez le code JavaScript suivant :

function myFunction() {
  var y = document.getElementById("txt1").value;
  var z = document.getElementById("txt2").value;
  var x = y + z;
  document.getElementById("demo").innerHTML = x;
}
Copier après la connexion

Lors de l'exécution de ce code, vous pouvez rencontrer un résultat particulier où 1 2 renvoie "12" au lieu du "3" attendu. Cela se produit car les variables y et z sont initialement récupérées sous forme de chaînes à partir des champs de saisie HTML. JavaScript interprète l'opération de concaténation ( ) différemment pour les chaînes que pour les nombres.

Pour remédier à ce problème et garantir l'ajout de valeurs numériques, il est nécessaire de convertir explicitement les chaînes en nombres avant d'effectuer le calcul. JavaScript fournit une solution simple pour y parvenir en utilisant le " " (opérateur unaire plus).

var x = +y + +z;
Copier après la connexion

En faisant précéder chaque chaîne de " ", elles sont converties en valeurs numériques. Cela permet à JavaScript d'effectuer l'opération d'addition souhaitée, aboutissant à la somme correcte des nombres. Par conséquent, l'extrait de code corrigé serait :

function myFunction() {
  var y = +document.getElementById("txt1").value;
  var z = +document.getElementById("txt2").value;
  var x = y + z;
  document.getElementById("demo").innerHTML = x;
}
Copier après la connexion

Cette modification garantit que les valeurs d'entrée sont traitées comme des nombres, évitant ainsi le problème de concaténation et produisant la somme appropriée.

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