首页 > 解决方案 > return 语句中的变量赋值,合法吗?

问题描述

下面的2个代码块有什么区别吗?

我想知道哪个是最佳做法。在块 2 中这样的 return 语句中声明一个新变量是否合法?

区块 1:

function caseInSwitch(num) {
  let answer = "";
  switch (num) {
    case 1:
      return answer += "alpha";
    case 2:
      return answer += "beta";
    case 3:
      return answer += "gamma";
    case 4:
      return answer += "delta";
  }
}
console.log(caseInSwitch(3)); //output gamma
console.log(answer); //output gamma

区块 2:

function caseInSwitch(num) {
  switch (num) {
    case 1:
      return answer = "alpha";
    case 2:
      return answer = "beta";
    case 3:
      return answer = "gamma";
    case 4:
      return answer = "delta";
  }
}
console.log(caseInSwitch(3)); //output gamma
console.log(answer); //output gamma

如您所见,我已经尝试了两种在控制台中产生相同结果的方法。

标签: javascriptvariablesreturn

解决方案


我认为您可以执行以下操作。没有什么比合法的了。做最兼容的方式。

function caseInSwitch(num) {
  let answer = "";
  switch (num) {
    case 1:
      answer += "alpha";
      break;
    case 2:
      answer += "beta";
      break;
    case 3:
      answer += "gamma";
      break;
    case 4:
      answer += "delta";
      break;
  }
  return answer;
}

推荐阅读