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
Barbara Streisandoriginal
2024-12-22 02:53:18998parcourir

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

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;

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

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