Javascript 按位与赋值运算符 (&=)使用介绍


在JavaScript中,按位与赋值运算符(`&=`)是一种复合赋值运算符,它结合了按位与(`&`)操作和赋值(`=`)操作。这种运算符首先对其左侧变量和右侧表达式进行按位与操作,然后将结果赋值回左侧的变量。

按位与操作`&`会对两个数的二进制表示进行逐位比较,只有当两个相应的位都为1时,结果位才为1,否则为0。

### 使用示例

假设我们有两个变量`a`和`b`,我们想要对它们执行按位与操作,并将结果存储回`a`中,我们可以这样做:


let a = 6; // 二进制表示为 110
let b = 3; // 二进制表示为 011

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

console.log(a); // 输出 2,因为 110 & 011 = 010,二进制转换为十进制是 2

在这个例子中,`a`和`b`的二进制表示分别是`110`和`011`。执行按位与操作后,只有第二位(从右往左数,从0开始计数)是1(因为两个数在该位上都是1),其余位都是0。因此,结果是`010`,在十进制中表示为2。

### 注意事项

- 按位与赋值运算符通常用于操作整数值,因为它们是对二进制位进行操作。

- 在进行按位与操作时,JavaScript会将操作数转换为32位整数(对于非`BigInt`值),并返回一个新的32位整数作为结果。

- 如果操作数之一是浮点数,它会被截断为32位整数(仅保留整数部分)后再进行按位与操作。

- 对于非数值类型(如字符串或对象),JavaScript会尝试将它们转换为数值,然后再执行按位与操作。如果转换失败,则结果为`NaN`。但是,在大多数情况下,与这类类型进行按位与操作会导致不直观的结果,因此建议仅对数值类型使用按位与操作。