这个 JavaScript 表达式是用来做什么的?

5

我已经使用JavaScript工作了两年,但我从未见过这样的表达式。在Google Chrome控制台中,我输入了以下内容:

var a=456;
var b=789;

然后我输入了这个。
a|=b 

结果是 989

有人能告诉我这个表达式是什么意思,为什么结果是 989 吗?

3个回答

4

这是一个位或操作。当以此方式使用时,它是“或等于”,其中结果被分配给变量。

 111001000 //456
1100010101 //789
1111011101 //989

3
那个表达式被称为带赋值的按位或运算。它考虑每个数字的每个单独的二进制位,如果其中一个数字在该位置上是1,则返回1,否则如果两个数字都是0,则赋值为0。
请参见Mozilla文档了解其他类似的按位操作。
它在像C和C ++这样的系统语言中更常用。

2

好的,表达式

a|=b;

当你执行a+=b;时,它相当于

a = a | b;

运算符|是表示“或”的,和运算符||不同。后者用于二进制操作中的“或”。

5   |  1   ->     0101 | 0001          ->      0101    ->    5

在您的情况下
456 | 789  ->  111001000 | 1100010101  ->   1111011101  ->    989

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接