[英]In a function with a declared empty variable, how does a switch statement automatically assign its return value to the empty variable?
所有。 我對JavaScript相當陌生-當前正在嘗試了解switch語句。 我對我的result
變量未賦值時仍如何獲得返回值時遇到問題。 switch語句嵌套在一個函數中。
function caseInSwitch(val) {
let result = "";
switch(val) {
case 1:
return "alpha";
break;
case 2:
return "beta";
break;
case 3:
return "gamma";
break;
case 4:
return "delta";
break;
}
return result;
}
caseInSwitch(1);
我希望result
是一個空字符串""
,但是它會立即顯示以下值...而沒有任何分配...!
您將在switch語句中return
。 在val
等於1
的情況下,switch語句永遠不會超過情況1。該函數不return result
,它執行return "alpha"
。
該return語句終止該函數:
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
是多余的:
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);
答案很簡單,在caseInSwitch中將val
的值傳遞1。 在開關塊中,1與情況1匹配,並且該函數返回alpha。 請記住,切換塊中的返回使控件從函數本身而不是僅從切換塊中返回
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.