小编典典

Javascript 切换与 if...else if...else

all

伙计们,我有几个问题:

  1. switch在 JavaScript 中,语句和语句之间是否存在性能差异if...else
  2. 如果是,为什么?
  3. 不同浏览器switch的行为是否不同?if...else(火狐、IE、Chrome、Opera、Safari)

问这个问题的原因是,我似乎switch在 Firefox 中使用大约 1000 个案例的语句获得了更好的性能。


编辑 不幸的是,这不是我的代码,Javascript 是从已编译的库在服务器端生成的,我无权访问该代码。调用生成 javascript 的方法

CreateConditionals(string name, string arrayofvalues, string arrayofActions)

notearrayofvalues是一个逗号分隔的列表。

它产生的是

function [name] (value) {
  if (value == [value from array index x]) {
     [action from array index x]
  }
}

注意:where [name]= 传递给服务器端函数的名称

现在我将函数的输出更改为插入到 TextArea 中,编写了一些 JavaScript 代码来解析函数,并将其转换为一组case语句。

最后我运行了这个函数,它运行良好,但 IE 和 Firefox 的性能不同。


阅读 92

收藏
2022-08-27

共1个答案

小编典典

笼统地回答:

  1. 是的,通常。
  2. 在此处查看更多信息
  3. 是的,因为每个都有不同的 JS 处理引擎,但是,在下面的站点上运行测试时,switch 总是在大量迭代中执行 if、elseif。

测试地点

2022-08-27