Ist es sicher, anzunehmen strengen Vergleich in einer JavaScript-Anweisung switch?
Ich habe eine variable, die entweder boolean false
oder eine ganze Zahl (einschließlich 0). Ich möchte in einer switch-Anweisung wie:
switch(my_var){
case 0:
//Do something
break;
case 1:
//Do something else
break;
case false:
//Some other code
}
In meinen tests von Google Chrome, es scheint zu funktionieren perfekt, aber ich bin ein wenig nervös, es zu benutzen, weil ich fürchte, dass in einigen Browsern, wenn my_var
ist false
ist, könnte es führen Sie den ersten Fall, da 0 == false
.
Ich Frage mich nur, ob es etwas offizielles in JavaScript, sagt die switch-Anweisung use strict Vergleich, so dass 0 !== false
, aber ich kann nichts finden, was mich, und ich bin mir nicht sicher, ob dies funktionieren wird, sowie in verschiedenen JavaScript-engines. Weiß jemand, ob der Vergleich erfolgt durch eine switch-Anweisung ist garantiert streng zu sein?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf ECMA-262, Abschnitt 12.11, der zweite Algorithmus, 4.c.
http://qfox.nl/notes/110 Ihre Frage beantwortet. (Dieser Kerl weiß viel über die nitty gritty JavaScript)