在以下 JavaScript 语句中:
var a = true;
a = a || b;
a
变量是否会对其自身值进行不必要的重新分配?
最佳答案
是的,它将分配给a
。这种事情甚至可能不会在编译语言中进行优化。
但是它不会浪费时间评估b
,因为它已经知道结果。当 a = a || 时会发生类似的情况b
运行:
if a
a = a
else
a = b
编辑:
为了跟进 icktoofay 所说的“它不会显着影响性能。”,它只是设置一个( bool )变量,这是可能发生的最简单的操作之一。即使您分配给更重要的东西(例如函数或数组),它也没有什么区别,因为它将分配给该项目的引用,而不是再次创建它。
以下是不执行任何操作与分配给 self ( jsPerf link ) 的性能比较,这要归功于 @bfavaretto用于设置它。
关于javascript - 如何使用javascript || (或)运算符(operator)工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15445359/