molily: case

Beitrag lesen

Hallo,

Warum funktioniert bei mir nur case "1" (also nur mit Anführungszeichen), aber nicht: case 1

Bei switch wird Typ und Wert überprüft. Es wird quasi der Operator === beim Vergleich verwendet.
"1" erzeugt einen String-Wert, 1 einen Number-Wert. Wenn du einen String-Wert hast - was du offenbar der Fall ist, wenn nur case "1" funktioniert -, dann kannst du nicht case 1 schreiben, weil eben Typ und Wert verglichen werden. Die Typen unterscheiden sich halt (String vs. Number).

Zur Erklärung: Der Wert fall stammt aus einer Benutzereingabe die mittels Ajax übertragen wurde.

Was du aus Formularfeldern oder per prompt() ausliest, ist ein String - sofern du ihn nicht ausdrücklich z.B. mit parseInt in einen Number-Wert umwandelst.

Mathias