我按照以下方式运行此功能:
funcA(1); // error
但为什么会失败?我知道这个代码在a == 2
的情况下失败了,但是这段代码虽然没有到达(*)
行但却抛出了错误。我的意思是当a
为1且其他情况未被调用时,为什么会抛出错误?
function funcA(a) {
switch(a){
case 1:
return a+1;
break;
case 2:
let b = 2;
default:
let b = 3; (*)
return;
}
}
console.log(funcA(1));
它不应该出错,因为代码永远不会到达行(*)
来重新声明b
变量。
答案 0 :(得分:1)
案件匹配后你需要休息:
function funcA(a) {
switch(a){
case 1:
return a+1;
break;
case 2:
let b = 2;
break; // insert break here
default:
let b = 3; (*)
return;
}
}