【发布时间】: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