Heim >Web-Frontend >js-Tutorial >Warum verkettet JavaScript Zahlen, anstatt sie hinzuzufügen?
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!