Вы return
входите в оператор switch. В случае, когда val
равно 1
, оператор switch никогда не проходит мимо случая 1. Функция не return result
, она выполняет return "alpha"
.
Этот оператор возврата завершает функцию:
function caseInSwitch(val) {
console.log("1: function start. Val:", val);
let result = "";
console.log("2: before switch");
switch(val) {
case 1:
console.log("3: before return alpha");
return "alpha";
console.log("4: after return alpha");
break;
case 2:
return "beta";
break;
case 3:
return "gamma";
break;
case 4:
return "delta";
break;
}
console.log("5: after switch");
return result;
}
var finalResult = caseInSwitch(1);
console.log("Final result:", finalResult);
Как видите, только операторы 1-3
регистрируются.
Оператор return
в коммутаторе также означает, что break
s являются избыточными:
switch(val) {
case 1:
return "alpha";
case 2:
return "beta";
case 3:
return "gamma";
case 4:
return "delta";
}
Эти break
заявления необходимы только для прекращения дела, если вы не возвращаетесь из дела:
let variable = "";
switch(val) {
case 1:
variable = "alpha";
break;
case 2:
variable = "beta";
break;
case 3:
variable = "gamma";
break;
case 4:
variable = "delta";
break;
}
console.log(variable);