问题描述
各位,我有几个问题:
switch
语句和if...else
在 JavaScript 中是否存在性能差异?- 如果是,为什么?
switch
和if...else
的行为在浏览器中是否不同?(FireFox、IE、Chrome、Opera、Safari)
- Is there a performance difference in JavaScript between a
switch
statement and anif...else
? - If so why?
- Is the behavior of
switch
andif...else
different across browsers? (FireFox, IE, Chrome, Opera, Safari)
问这个问题的原因是,我似乎在 Firefox 中使用大约 1000 个案例的 switch
语句获得了更好的性能.
The reason for asking this question is it seems that I get better performance on a switch
statement with approx 1000s cases in Firefox.
已编辑不幸的是,这不是我的代码,Javascript 是从已编译的库在服务器端生成的,我无权访问该代码.生成 javascript 的方法称为
Edited Unfortuantly this is not my code the Javascript is being produced serverside from a compiled library and I have no access to the code. The method that is producing the javascript is called
CreateConditionals(string name, string arrayofvalues, string arrayofActions)
注意 arrayofvalues
是一个逗号分隔的列表.
note arrayofvalues
is a comma separated list.
它产生的是什么
function [name] (value) {
if (value == [value from array index x]) {
[action from array index x]
}
}
注意:其中 [name]
= 传入服务器端函数的名称
Note: where [name]
= the name passed into the serverside function
现在我将函数的输出更改为要插入到 TextArea 中,编写一些 JavaScript 代码来解析该函数,并将其转换为一组 case
语句.
Now I changed the output of the function to be inserted into a TextArea, wrote some JavaScript code to parse through the function, and converted it to a set of case
statements.
最后我运行了这个函数,它运行良好,但在 IE 和 Firefox 中性能不同.
finally I run the function and it runs fine but performance differs in IE and Firefox.
推荐答案
笼统回答:
- 是的,通常情况下.
- 在此处查看更多信息一个>
- 是的,因为每个都有不同的 JS 处理引擎,但是,在下面的站点上运行测试时,switch 总是在大量迭代中执行 if、elseif.
测试站点
这篇关于Javascript 切换与 if...else if...else的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!