2014-10-30 50 views
-3

我想知道在以下2箱子result值:| =运算符在JavaScript中表示什么?

1.

var result = false; 
result |= false; 

2.

var result = false; 
result |= true; 
+0

查看'console.log(result);'做了什么,然后执行实验。请参阅格林的回答为什么。 – 2014-10-30 02:25:14

+2

如果你的问题没有以你的问题为主题,那么你可能不会得到赞赏,只需在控制台中运行你的样本即可完全回答。你真正有趣的问题只在标题中提出。 – 2014-10-30 02:27:37

回答

1

|操作者是位或运算符。而不是做一个标准的二进制或(下面的真值表),|运算符将为这两个操作数的每一位执行一个二进制或运算。

二进制或

x|y|q 
0|0|0 
1|0|1 
0|1|1 
1|1|1 

3 | 5 
// in binary 
0011 | 0101 
// as a truth table 

x|y|q 
0|0|0 
0|1|1 
1|0|1 
1|1|1 

0011 | 0101 = 0111 
// in decimal 
3 | 5 = 7 

在与配合使用位或操作等号把它变成一个赋值语句,以类似的方式来+=-=或任何的其他逻辑/算术运算符。这只是result = result | operand的简写。

需要注意的是,如果您使用具有布尔值(true或false)的运算符,它们将被强制为数值(分别为1和0),然后再按上述方式进行比较。