Hallo
Könnte mir jemand erklären, warum hier die Subtraktion scheinbar korrekt ausgeführt wird, die Addition aber nicht?
Weil der Plusoperator nicht nur für die Addition verwendet wird, sondern auch zur Konkatenation von Strings. Das heißt, wenn einer der beiden Werte vor oder nach dem Plus ein String ist, dann wird der andere Wert ebenfalls in einen String konvertiert und die beiden Zeichenketten werden verknüpft.
const a = '4', b = 3;
console.log(typeof (a - b)); // number (1)
console.log(typeof (a + b)); // string (43)
console.log(typeof (b + a)); // string (34)
Beim Minusoperator findet eine solche implizite Typkonvertierung nicht statt, da er keine zusätzliche Bedeutung wie der Plusoperator bestitzt. Seine Aufgabe ist nur die Subtraktion.
Viele Grüße,
Orlok