【问题标题】:Performance efficiency.... conditional statements vs logical expressions in Javascript性能效率.... Javascript 中的条件语句和逻辑表达式
【发布时间】:2012-05-10 08:40:25
【问题描述】:

以下哪种方法更高效、更快

  1. 嵌套条件

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

    if( a==b && b1 == c && c1 == d) {
    }
    

一般来说,上述哪种方法更快,为什么? 编写库时应该首选哪一个? 我知道在第一种方法中,只有当上面的 if 语句结果为 true 时才会执行一个块。 在第二种方法中,由于条件评估是从左到右的,如果前面的条件为假,它也会跳过下一个条件..我是对的吗?

如果是,这两种方法之间是否存在性能差异?

【问题讨论】:

  • 没有。这是过早的优化
  • 不知道这与“循环”有什么关系...
  • 澄清了所有这些:)
  • @HeitorChang 仅当 a -> bb -> c

标签: javascript performance loops conditional


【解决方案1】:

我怀疑它们之间会有任何显着的性能差异,因为正如您所怀疑的那样,&&|| 在 JavaScript 中短路(所以如果 a == b 为 false 并且 @ 987654327@ 被使用)并且 JavaScript 不需要做任何特定的管道来进入块(因为它还没有块范围的变量)。

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


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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 2021-10-24
    • 2020-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    相关资源
    最近更新 更多