性能效率.... Javascript中的条件语句和逻辑表达式

时间:2012-04-30 16:35:55

标签: javascript performance loops conditional

以下哪种方法更有效,更快

  1. 嵌套条件

    if( a == b ) {
    
      if( b1 == c ) {
    
        if( c1 == d ) {
        }
    
      }
    
    }
    
  2. 逻辑表达式

    if( a==b && b1 == c && c1 == d) {
    }
    
  3. 一般来说,上述哪种方法更快,为什么? 在编写库时应该优先考虑哪一个? 我知道在第一种方法中,只有当上面的if语句结果为真时才会执行一个块。 在第二种方法中,由于条件评估是从左到右,如果以前的条件是假的,它也会跳过下一个条件。我是对的吗?

    如果是,两种方法之间是否有任何性能差异?

1 个答案:

答案 0 :(得分:5)

我怀疑它们之间会有任何显着的性能差异,因为您怀疑,JavaScript中存在&&||短路(因此如果{b == c将无法完成{1}}为false且使用了a == b,并且JavaScript不必为进入块执行任何特定的管道(因为它还没有块范围变量)。

但是这些因实施而异,真正了解的唯一方法是在您的目标引擎上进行测试,如果定位浏览器,也可以使用http://jsperf.com这样的网站。


更重要的问题是:重要吗?与可读性,可维护性等相反,我认为可读性/可维护性/清晰度将大大超过任何潜在的性能节省。< / p>

另请注意,如果您真的喜欢这些东西,那么您可能希望在高级模式下使用类似Closure Compiler的东西,这将对代码进行实际优化(它不仅仅是一个缩小器)。