Tach!
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.
Soweit der eine Teil. Aber warum schafft es der Minus-Operator (oder auch parseInt()), den Wert \n8 in eine Zahl umzuwandeln, der Konstruktor von Number aber nicht?
P.S. die valueOf()-Aufrufe im OP sind nutzlos. innerHTML liefert einen primitiven String und kein String-Objekt. valueOf() liefert auch nur einen primitiven String. Da findet also keine sichtbare Aktion statt.
dedlfix.