gpt4 book ai didi

javascript - switch 内的表达式被调用了多少次

转载 作者:行者123 更新时间:2023-12-01 00:30:11 24 4
gpt4 key购买 nike

给定一个像这样的 switch 语句:

switch(text.toLowerCase()) {
case("aaa"):
doSomething();
return;
case("bbb"):
doSomething();
return;
case("ccc"):
doSomething();
return;
default:
return;
}

开关本身内的表达式被调用多少次?

  • 它会在检查的每种情况下调用 toLowerCase() (这意味着最好将此表达式插入到该 switch case 之前的变量中,并在 switch 内部使用该变量)

  • 或者它会计算一次 toLowerCase() 并为所有情况使用最终表达式的值吗?

最佳答案

switch 语句中的表达式仅被调用一次。

if/else if 语句相比,这是此语句的用处之一(实际上,最好首先将结果分配给变量) .

如果你想绝对确定这一点,你可以像这样自己测试它,使用你自己版本的 toLowerCase() (覆盖 String.prototype 进行测试目的):

var nbTime = 0;
var text = '';

String.prototype.toLowerCaseNbTime = function() {
console.log(++nbTime) // -> 1
return this.toLowerCase();
}

switch(text.toLowerCaseNbTime()) {
case("aaa"):
doSomething();
return;
case("bbb"):
doSomething();
return;
case("ccc"):
doSomething();
return;
default:
return;
}

关于javascript - switch 内的表达式被调用了多少次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58626118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com