Ich habe eine Variable, die entweder boolesch false
oder eine ganze Zahl (einschließlich 0) sein kann. Ich möchte es in eine switch-Anweisung einfügen wie:
switch(my_var){
case 0:
// Do something
break;
case 1:
// Do something else
break;
case false:
// Some other code
}
In meinen Tests in Google Chrome, so scheint es perfekt zu arbeiten, aber ich bin ein wenig nervös , es zu benutzen , weil ich , dass in einigen Browsern Angst habe, wenn my_var
ist false
, könnte es den ersten Fall ausführen da 0 == false
.
Ich frage mich nur, ob es irgendetwas Offizielles in JavaScript gibt, das besagt, dass die switch-Anweisung einen strengen Vergleich verwendet 0 !== false
, aber ich kann selbst nichts finden, und ich bin mir nicht sicher, ob dies in verschiedenen JavaScript-Engines gut funktioniert. Weiß jemand, ob der Vergleich durch eine switch-Anweisung garantiert streng ist?
http://qfox.nl/notes/110 beantwortet Ihre Frage. (Dieser Typ weiß viel über das Wesentliche von JavaScript)
quelle
Ja,
switch
"verwendet den strengen Vergleich===
".Quelle: switch - JavaScript | MDN
quelle