【问题标题】:Which is more efficient Ternary operator or one-line IF?三元运算符和单线 IF 哪个更有效?
【发布时间】:2020-07-22 22:17:03
【问题描述】:

我正在将 python 代码重写为 nodejs,我想知道哪个更有效:

a = func1()
a = a ? a : func2()

a = func1()
if (!a) a = func2()

最初,我将第一个块写为:

a = func1() ? func1() : func2()

但我认为这最终会调用 func1() 两次,因此首先将其分配给一个变量。

注意:我不小心在 ServerFault 上发布了这个。感谢cyberx86 (https://serverfault.com/users/86472/cyberx86) 指出这一点并说性能可以忽略不计。并提出建议:

a = func1() || func2()

更新:对于像我这样的新手程序员,上面的行是“短路”。意思是如果func1()返回true,则不需要评估func2()的返回值

【问题讨论】:

  • 性能对于这种微不足道的事情并不重要。 a = func1() || func2() 是正确的方法。
  • 过早的优化是万恶之源

标签: javascript if-statement conditional-statements conditional-operator


【解决方案1】:

a = func1() || func2() 应该是你要找的东西

【讨论】:

    猜你喜欢
    • 2011-06-10
    • 2019-11-13
    • 1970-01-01
    • 2015-08-17
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 2010-12-12
    • 2021-01-03
    相关资源
    最近更新 更多