Heim >Web-Frontend >js-Tutorial >Warum verkettet JavaScript Zahlen, anstatt sie hinzuzufügen?

Warum verkettet JavaScript Zahlen, anstatt sie hinzuzufügen?

Barbara Streisand
Barbara StreisandOriginal
2024-12-22 02:53:18998Durchsuche

Why Does JavaScript Concatenate Instead of Adding Numbers?

Verkettung statt Summation bei der numerischen Addition

In bestimmten Programmierszenarien kann der Versuch, zwei numerische Werte zu summieren, zu einem unerwarteten Verhalten führen, bei dem die Zahlen werden verkettet statt addiert. Dieses Problem tritt auf, wenn die Eingabewerte als Zeichenfolgen und nicht als Zahlen behandelt werden.

Bedenken Sie den folgenden JavaScript-Code:

function myFunction() {
  var y = document.getElementById("txt1").value;
  var z = document.getElementById("txt2").value;
  var x = y + z;
  document.getElementById("demo").innerHTML = x;
}

Beim Ausführen dieses Codes kann es zu einem eigenartigen Ergebnis kommen, bei dem 1 2 gibt „12“ statt der erwarteten „3“ zurück. Dies liegt daran, dass die Variablen y und z zunächst als Zeichenfolgen aus den HTML-Eingabefeldern abgerufen werden. JavaScript interpretiert die Verkettungsoperation ( ) für Zeichenfolgen anders als für Zahlen.

Um dieses Problem zu beheben und die Addition numerischer Werte sicherzustellen, ist es notwendig, die Zeichenfolgen vor der Berechnung explizit in Zahlen umzuwandeln. JavaScript bietet eine einfache Lösung, um dies mit dem „ “ (unärer Plusoperator) zu erreichen.

var x = +y + +z;

Indem jeder Zeichenfolge ein „ “ vorangestellt wird, werden sie in numerische Werte umgewandelt. Dadurch kann JavaScript die gewünschte Additionsoperation ausführen, was zur korrekten Summe der Zahlen führt. Daher würde der korrigierte Codeausschnitt wie folgt lauten:

function myFunction() {
  var y = +document.getElementById("txt1").value;
  var z = +document.getElementById("txt2").value;
  var x = y + z;
  document.getElementById("demo").innerHTML = x;
}

Diese Änderung stellt sicher, dass die Eingabewerte als Zahlen behandelt werden, wodurch das Verkettungsproblem verhindert und die entsprechende Summe erzeugt wird.

Das obige ist der detaillierte Inhalt vonWarum verkettet JavaScript Zahlen, anstatt sie hinzuzufügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn