簡體   English   中英

在具有聲明的空變量的函數中,switch語句如何自動將其返回值分配給空變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM