gpt4 book ai didi

javascript - a && b && c VS if - 性能有何不同?

转载 作者:行者123 更新时间:2023-11-29 21:48:25 25 4
gpt4 key购买 nike

刚看到一行代码:a && b && c。我认为这应该等同于 if(a && b) {c}。但我真的很好奇这些代码是否存在任何性能差异,或者将它们放在一行中只是很酷?

这是实际代码:sourcesPanel && sourcesPanel.tips && sourcesPanel.tips.clearTimers()

sourcesPanelsourcesPanel.tips 是程序中的两个对象。基本上,我认为它是在检查这两个对象是否存在,如果它们存在,则调用 clearTimers 函数。

最佳答案

JS 中的逻辑运算符有一个非常重要的行为:它们返回第一个最终失败或成功的操作数。如果没有。

if (a) { if (b) { ... 的行为非常简单:如果它们为真,则进入 block 。

&& 的行为不同:

foo = 1 && 2 && 3; // foo = 3, succeeds all the way through
foo = 1 && 0 && 3; // foo = 0, failed at 0
foo = 1 && null && 3; // foo = null, failed at null

if 中使用逻辑运算符时,行为似乎完全相同。单独使用或与作业一起使用时,它们的行为方式相对出乎意料。

利用 || 提供默认值:

opt = opt || {foo: bar}; 

如果 opt 是真实的(对于一个对象,存在)使用它,否则使用默认值。其他逻辑运算符的行为方式相同。

关于javascript - a && b && c VS if - 性能有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30265468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com