Javascript 这个接线员是什么=
有人能解释一下操作符Javascript 这个接线员是什么=,javascript,operators,bit-manipulation,Javascript,Operators,Bit Manipulation,有人能解释一下操作符&=的作用吗 我搜索了,但只得到了&或=的结果 a &= b; 与 a = a & b; &是“按位and运算符”,搜索它。这是一个允许折叠的速记运算符 a = a & b a = a && b 进入 除了对整数进行逐位运算外,&=还可以对布尔值进行运算,从而允许折叠 a = a & b a = a && b 进入 然而,在逻辑运算的情况下,扩展形式是短路,而后一种折叠形式不会短路 例如: 让b()成
&=
的作用吗
我搜索了,但只得到了&
或=
的结果
a &= b;
与
a = a & b;
&是“按位and运算符”,搜索它。这是一个允许折叠的速记运算符
a = a & b
a = a && b
进入
除了对整数进行逐位运算外,&=
还可以对布尔值进行运算,从而允许折叠
a = a & b
a = a && b
进入
然而,在逻辑运算的情况下,扩展形式是短路,而后一种折叠形式不会短路
例如:
让b()
成为一个函数,它返回一个值,并执行影响程序状态的操作
设a
为false
如果你这样做
a = a && b()
a &= b()
短路发生:由于a
为false
,因此无需计算b
(并且跳过b()中可能发生的额外计算)
另一方面,如果你这样做
a &= b()
短路不会发生:b
在任何情况下都会被计算,即使a
为false
(并且计算b()
不会改变逻辑结果),因此b()内可能发生的任何额外计算
确实得到执行。如果我没记错的话,它是双向操作……例如,它可以与[Flags]Enum一起使用。
它检查您的标志变量是否具有特定值。此
x &= y;
相当于
x = x & y;
请注意,&
是按位and运算符。在C#(我认为在大多数语言中)是按位分配运算符
a&=b相当于a=a&b
a&=b
等同于a=a&b
这是一个常规操作员吗?一般来说,对于任何二元运算符,a#=b等于a=a#b。(请注意,接受的答案是不完整的。有关&=
运算符的更详尽解释,请参阅)。更具体地说,它是“按位和赋值运算符”(无论如何)。请注意,&=
是按位和逻辑and运算符的复合赋值运算符,而不仅仅是“按位and运算符”。逻辑AND的唯一特点是折叠的&
不会短路(始终计算右侧操作数),而如果左侧操作数的计算结果为false
,则未折叠的&
运算符会短路。