在javascript中对一堆if()else if()使用switch语句是不是有任何性能提升? [复制]

Posted

技术标签:

【中文标题】在javascript中对一堆if()else if()使用switch语句是不是有任何性能提升? [复制]【英文标题】:Is there any performance gain from using a switch statement over a bunch of if()else if() in javascript? [duplicate]在javascript中对一堆if()else if()使用switch语句是否有任何性能提升? [复制] 【发布时间】:2011-11-17 18:49:56 【问题描述】:

可能重复:javascript switch vs. if…else if…else

只是好奇事情是否会运行得更快或更好地布置在缓存中,或者通过使用开关可能会提高性能?至少我知道它看起来不错,并允许下一个代码看到所有下一个顺序语句都依赖于对同一变量的评估。

【问题讨论】:

【参考方案1】:

一般来说,switchif - else if 语句快。

但是,如果您有最多 3 个条件,最好使用if - else if。如果超出此范围,则应使用switch 语句。

if else 的问题在于它可能需要多次检查才能最终到达要执行的代码。因此,您还需要优化条件语句的顺序。

if( foo ) 

else if( bar ) 

else if( baz ) 

如果您希望 baz 在大多数情况下为 truefoo/barfalse,那么从性能的角度来看,该代码将没有多大意义。

【讨论】:

感谢您的完整性检查!

以上是关于在javascript中对一堆if()else if()使用switch语句是不是有任何性能提升? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

(Unity)如何传递变量,没有一堆If Else语句的变量

如何在 if else 循环中对同一数据使用多个条件? - java/安卓

JavaScript 的最近邻库

java中那些情况使用if语句时可以不用else?

4 Javascript:决策-if/else语句

es8中对string补白的方式