&=如何在Javascript中工作?

&=如何在Javascript中工作?,javascript,Javascript,在a&=b;相当于a=a&&b,但我对它的用法没有信心,因为我在很多地方都没有见过它。情景: var a = 0; var b = 1; a &= b; console.log(a); // 0 a = 1; a &= b; console.log(b); // 1 但这里发生了什么 var a = 11011; var b = 11101; a &= b; console.log(a); // 11009 &=表示简写的按位AND运算符 a &= b; 1

在a&=b;相当于a=a&&b,但我对它的用法没有信心,因为我在很多地方都没有见过它。情景:

var a = 0;
var b = 1;
a &= b;
console.log(a); // 0
a = 1;
a &= b;
console.log(b); // 1
但这里发生了什么

var a = 11011;
var b = 11101;
a &= b;
console.log(a); // 11009
&=表示简写的按位AND运算符

a &= b;
11011 -> 10101100000011
11101 -> 10101101011101
-----------------------
11009 -> 10101100000001
它对a和b进行位和运算,结果将存储回a

a&b并不等同于a&b。前者是位运算符,而后者是逻辑运算符

a &= b;
11011 -> 10101100000011
11101 -> 10101101011101
-----------------------
11009 -> 10101100000001

在JavaScript中,与其他类似C的语言一样,&运算符用于按位,类似于逻辑AND&&运算符,但对数字的每一位进行操作

所以a&=b实际上是: a=a&b

不是:
a=a&b

我认为这将使我们清楚地了解该系统的工作原理:


第三个数字是二进制写的,与其他两个数字的1完全相同。

回答您的问题

var a = 11011;
var b = 11101;
a &= b;
console.log(a); // 11009
您正在点播的是11011 base 10到11101 base 10

如果要按位a和b,可以这样做:

var a = parseInt(11011, 2);
var b = parseInt(11101, 2);
a &= b;
console.log(parseInt(parseInt(a, 10).toString(2)));

a&=b相当于a=a&b.110011&=110000->110000按位,朋友。啊,按位是有意义的。这是有文件记录的吗?我希望看到它的实现让我感觉更好一点?另外,是否有一个&&=?是否有文档记录,当然是->当我们决定结束问题时,它会到达那里。