javascript - 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
如您所见,我已经尝试了两种在控制台中产生相同结果的方法。
解决方案
我认为您可以执行以下操作。没有什么比合法的了。做最兼容的方式。
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;
}