javascript - a && b && c VS if - 性能上有什么区别?

标签 javascript performance

刚刚看到一行代码: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是 true (对于对象,存在)使用它,否则使用默认值。其他逻辑运算符的行为方式相同。

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

相关文章:

javascript - 将参数从路由发送到 htmlfile

使用TFS 2013普通版进行性能测试

python - 使用 numpy.where 向量化 for 循环

php - 提高网站性能

mysql - 加快 IP 查找的双重/嵌套选择查询

performance - 如何对 Matlab 流程进行基准测试?

javascript - 使用 onclick 调用的函数切换文本

javascript - 如何将包含 mongoose 函数的方法与控制流框架(例如 Async 或 Step)一起使用

javascript - 触发警报消息时调用函数

javascript - 如何在不使用 jQuery 的情况下添加点击处理程序