gpt4 book ai didi

Javascript toLowerCase() 性能与变量创建

转载 作者:行者123 更新时间:2023-11-29 09:58:29 25 4
gpt4 key购买 nike

什么更有效率?:

var text="ABCdef";
var lowerVersion=text.toLowerCase();
if (lowerVersion=='abcdef' || lowerVersion=='asdfgh' || lowerVersion=='zxcvbn'){...

var text="ABCdef";
if (text.toLowerCase()=='abcdef' || text.toLowerCase()=='asdfgh' || text.toLowerCase()=='zxcvbn'){...

即创建变量是否比多次运行 toLowerCase() 更昂贵?

谢谢。

最佳答案

这是 JavaScript。答案将是:视情况而定。这取决于您使用的引擎、您的数据、上下文中的其他内容、第一个匹配项还是最后一个匹配项匹配、备用星期二...

但是在 JavaScript 中创建变量非常快。相比之下,重复调用版本要求解释器进行多个函数调用,并且函数调用(尽管以任何实际衡量标准都很快)与大多数其他操作相比都很慢。如果解释器能够确定它可以缓存调用的结果,那么速度会如此快的唯一方法是棘手的。

Taking @Felix's performance test and making it pessimistic (例如,最坏的情况,它们都不匹配)表明即使 Chrome 也无法对其进行足够的优化以使重复的函数调用不会变得更糟。我没有做任何全面的测试,但 Chrome、Firefox 和 Opera 的速度都慢了大约 60%。

当然,您还有其他选择:

var text="ABCdef";
switch (text.toLowerCase()) {
case 'abcdef':
// ...
break;
case 'asdfgh'
// ...
break;
case 'zxcvbn'
// ...
break;
}

尽管如此,所有这些都是过早的优化,这通常已经够糟糕了,但对于 JavaScript 及其运行复杂的不同环境尤其糟糕。

更好的问题是:什么更清晰、更易于维护?

关于Javascript toLowerCase() 性能与变量创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6706064/

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