Verwenden Sie in den offiziellen Mozilla Developer Center-Dokumenten mehrere Fälle wie:
%Vor%Wenn Sie nach einer IE-Lösung suchen, verwenden Sie die JScript-Dokumentation für switch , die sich auf Case-Bedingungen als "Labels" beziehen und angeben:
Mehrere Etikettenblöcke werden ausgeführt, wenn a break-Anweisung wird nicht verwendet.
Tatsächlich sagen beide Dokumentationssätze dasselbe über das Zusammensetzen mehrerer Fälle.
Das Problem mit Ihrem Beispiel ist, dass der Ausdruck ('foo' || 'bar')
zu 'foo'
ausgewertet wird und daher nur dann übereinstimmt, wenn i
'foo'
ist, und niemals, wenn i
'bar'
ist.
Der Operator ||
erzeugt den Wert seines ersten Operanden, wenn der erste Operand truthy ist. Andernfalls erzeugt es den Wert des zweiten Operanden. Eine nicht leere Zeichenfolge ist immer truthy, und deshalb gibt Ihr Ausdruck 'foo'
zurück.
In JavaScript fällt jedoch case
in den nächsten Fall, es sei denn, Sie unterbrechen den Ablauf explizit mit break
oder return
. Daher können Sie es leicht wie folgt arbeiten lassen:
Tags und Links javascript