这个算子是什么:& =

时间:2012-01-18 13:07:48

标签: javascript operators bit-manipulation

有人可以解释什么是运算符&=

我进行了搜索,但我只获得&=的结果。

6 个答案:

答案 0 :(得分:11)

a &= b;

相同
a = a & b;

&安培;是“按位和运算符”,搜索它。

答案 1 :(得分:7)

这是一个允许你崩溃的速记操作符

a = a & b

a &= b

除了对整数进行按位运算外,&=也可用于布尔值,允许你折叠

a = a && b

a &= b

然而,在逻辑运算的情况下,扩展形式是短路的,而后者的折叠形式不会短路。

示例:

b()成为一个返回值的函数,并且还会影响程序的状态

a成为false

的布尔值

如果你这样做

a = a && b()

发生短路:由于afalse,因此无需评估b(并且会跳过b()内可能发生的额外计算。)< / p>

另一方面,如果你这样做

a &= b()

短路不会发生:b在任何情况下都会被评估,即使afalse(评估b()也不会改变逻辑结果),因此b()内可能发生的任何额外计算都会被执行。

答案 2 :(得分:3)

x &= y;

相当于

x = x & y;

请注意&是按位和运算符。

答案 3 :(得分:0)

如果我没记错,那就是biwise操作...例如它可以和[Flags] Enum一起使用。 它检查您的标志变量是否具有特定值。

答案 4 :(得分:0)

在C#中(我认为在大多数语言中)是按位赋值运算符。

a&amp; = b相当于a = a&amp; b

http://msdn.microsoft.com/en-us/library/e669ax02.aspx

答案 5 :(得分:0)

a &= b相当于a = a & b