Hallo Sven
In Javascript haben die Variableninhalte einen Typ, der sich nicht automatisch wechselt.
nö, die wechseln schon, solange es sich aus dem Kontext erschließt.
Und es gibt z.B. identische Operatoren zum Addieren von Zahlen und Aneinanderhängen von Strings.
jsvariable = "1"; -> Erzeugt einen String.
alert (jsvariable+jsvariable); hängt den String "1" zweimal aneinander: "11".
hier "kuckt" JavaScript nach --> String also Verkettung
alert (jsvariable*1 + jsvariable*1);
die Multiplikation machte aus deiner jsvariable eine Zahl und schon wird brav addiert und 2 ausgegeben.
jsvariable = 1; -> Erzeugt eine Zahl.
alert (jsvariable+jsvariable) berechnet 1+1 und zeigt das an: "2".
Grundsätzlich gilt in JS, will man auf eine Zahl Stringmethoden oder den Zeichenkettenverknüpfungsoperator anwenden, so muss diese in einen String konvertiert werden.
Umgekehrt gilt dies auch für Zahlen.
Damit man sich den Ärger mit Hochkommas erspart, wird einfach an allen Stellen, wo es ein String sein muss, die Methode String() verwendet und wo es eine Zahl sein muss, eben Number()
Beispiel: alert(Number(jsvariable)+Number(jsvariable)) == 2
alert(String(jsvariable)+String(jsvariable)) == 11
und schon ist man auf der sicheren Seite
Viele Grüße
Antje