为什么我的switch case不能在JavaScript中工作



我希望变量CurrectcoinValue能得到正确大小写的值,但它不起作用。

const CurrectcoinValue = "null";
const symbol = "usdt";
casim(symbol, CurrectcoinValue);
console.log("result : " + CurrectcoinValue);
function casim(symbol, CurrectcoinValue) {
switch (symbol) {
case "btc":
CurrectcoinValue = "BTC";
break;
case "eth":
CurrectcoinValue = "ETH";
break;
case "usdt":
CurrectcoinValue = "USDT";
break;
case "usdc":
CurrectcoinValue = "USDC";
break;
default:
CurrectcoinValue = 1;
}
}

您的解决方案有两个基本问题:

  • 如果你想改变一个变量,你需要用let或var来声明它(最好是let,因为范围更紧(。当不想更改变量时,使用const
  • 您不能在函数中设置字符串变量,JS不会更改该变量,因为它没有保留对它的引用

此外,我认为我们有一个更好的方法来处理这个问题,那就是使用一个不改变任何参数参考的函数,只计算值:

const symbol = "usdt";
const CurrectcoinValue = casim(symbol);
console.log("result : " + result);
function casim(symbol) {
switch (symbol) {
case "btc":
return "BTC";
case "eth":
return "ETH";
case "usdt":
return "USDT";
case "usdc":
return "USDC";
default:
return 1;
}
}

这样你就不会与参考问题作斗争。你也可以接受使用符号.toUpperCase((的建议;方法的情况下,不是默认的,这将节省一些代码重复:(

最新更新