伙计们,我有几个问题:
- 在 JavaScript 中,
switch
语句和if...else
之间是否存在性能差异? - 如果是,为什么?
switch
和if...else
的行为在浏览器之间是否不同? (FireFox、IE、Chrome、Opera、Safari)
问这个问题的原因似乎是我在 Firefox 中使用大约 1000 种情况下的 switch
语句获得了更好的性能。
已编辑 不幸的是,这不是我的代码,Javascript 是从已编译的库在服务器端生成的,我无权访问该代码。生成 javascript 的方法称为
CreateConditionals(string name, string arrayofvalues, string arrayofActions)
注意 arrayofvalues
是一个逗号分隔的列表。
它产生的是
function [name] (value) {
if (value == [value from array index x]) {
[action from array index x]
}
}
注意:其中 [name]
= 传入服务器端函数的名称
现在我更改了要插入到 TextArea 中的函数的输出,编写了一些 JavaScript 代码来解析函数,并将其转换为一组 case
语句。
最后我运行了该函数,它运行良好,但在 IE 和 Firefox 中的性能不同。
最佳答案
一般性回答:
- 是的,通常。
- See More Info Here
- 是的,因为每个都有不同的 JS 处理引擎,但是,在下面的站点上运行测试时,switch 在大量迭代中总是执行 if、elseif。
关于Javascript 开关与 if...else if...else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2922948/