javascript - 如何使用javascript || (或)运算符(operator)工作

标签 javascript operators conditional-statements or-operator

在以下 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/

相关文章:

c++ - boost::operators 混合算术

C++11 std::conditional 在运行时?

c - C 语言的简单 GCD 程序,无法从扫描仪过滤正确的用户输入

javascript - 预加载 div 不会在大部分 DOM 之前加载

javascript - 如何在我的 Stimulus JS Controller 中声明一个 const 字符串?

javascript - 谷歌浏览器扩展程序可以处于休眠状态但可以调用吗?

javascript - 循环中的 HTTP.post() 回调

rxjs - Angular 6 单元测试 rxjs 6 操作符点击单元测试拦截器

c - 这个 printf() 函数如何输出这些值?

javascript - JS 性能 : Event Handler inside Condition vs Condition inside Event Hander