Beim Erstellen von JavaScript mit ASP.NET MVC habe ich mehrere Bereichswarnungen bemerkt und festgestellt, dass mir etwas fehlt, wenn ich den Variablenbereich in der switch/case-Anweisung verstehe.Was ist der JavaScript-Variablenbereich in einer switch/case-Anweisung?
Warnung: 'i' ist bereits definiert zu Fall b und Fall Bezug c
Mein Code in etwa so aussieht:
switch(element) {
case 'a':
for(var i=0; i < count; i++){
do something
}
break;
case 'b':
for(var i=0; i < count; i++){
do something
}
break;
case 'c':
for(var i=0; i < count; i++){
do something
}
break;
}
Ich dachte Umfang mit jeder break-Anweisung beendet, aber es scheint dieser Umfang endet nicht vor dem Ende des Schalters/Falles. Gibt es Spielraum für den gesamten Schalter/Fall?
Ja. Ich muss hier einschlafen, weil es auf den ersten Blick richtig schien. Aber Freude an Compilerwarnungen, um mich wissen zu lassen, wenn ich eingeschlafen bin. Danke für die tolle Antwort. –
Beachten Sie, dass Sie in C-ähnlichen Sprachen (nicht Javascript) nach dem Fall einen Bereich selbst erstellen können, wenn Sie möchten: 'Fall 1: {...} ' – hugomg
FYI, heutzutage ES6-Syntax erlaubt Block-Scoping, so dass Umfang nach Fall wäre möglich –