【问题标题】:JavaScript performance of || operator to instantiate a variable|| 的 JavaScript 性能运算符实例化变量
【发布时间】:2013-10-19 06:52:18
【问题描述】:

只是一个简单的问题,我似乎无法找到可靠的来源。我总是使用|| 运算符来简写undefined 检查,比如

myVar = myVar || {};

但我想知道这是否意味着它会重新分配 myVar 如果它存在?因此,如果从性能的角度来看,将其扩展为 if 语句会更好:

if(!myVar) myVar = {};

非常感谢您提前解决这个问题!

【问题讨论】:

  • 不用担心IMO,用更方便的吧。
  • 那些“什么是更快/更高效的东西”是怎么回事?当涉及到完全不相关的代码部分时会出现问题吗?如果两者中的一个需要一个 CPU 内核多 200 个周期,这真的没关系。无论如何,该核心在一秒钟内的其他 2,000,000,000 个周期几乎什么都不做。
  • 微优化是万恶之源,不值得。选择认为最容易阅读的东西。
  • 谢谢大家,@elclanrs 你能把它作为答案让我接受吗?

标签: javascript performance shorthand


【解决方案1】:

jsPerf 怎么样?我自己查不出来(手机) http://jsperf.com/browse

【讨论】:

【解决方案2】:

我无法想象您会在运行时多次运行它。永远不会有问题。

如果这是在热函数中,那么无论如何你都会被搞砸,因为隐式/可选的东西在直觉上是非常糟糕的。我无法想象您有一个需要执行此操作的热门功能。您可能正在建立类或模块 - 您可以额外运行 100000 次循环而不会注意到任何事情。

【讨论】:

    猜你喜欢
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2017-06-30
    • 2014-10-05
    相关资源
    最近更新 更多