Javascript 为什么1&;1===1返回true,而2&;2==2返回false?

Javascript 为什么1&;1===1返回true,而2&;2==2返回false?,javascript,binary,operator-keyword,Javascript,Binary,Operator Keyword,在控制台中,当我键入1&1时,它返回1,这就是1&1==1返回true的基本原因 对于2&2它返回2,但2&2==2返回false 为什么? console.log(“1&1:”,1&1); log(“1&1==1:”,1&1==1); 控制台日志(“2&2:”,2&2); log(“2&2==2:,2&2==2”); 控制台日志(“类型(2):”,类型2); 控制台日志(“typeof(2&2):”,typeof(2&2))正如@jornsharpe所说,它不会返回false,而是返回0。它

在控制台中,当我键入
1&1
时,它返回
1
,这就是
1&1==1
返回
true
的基本原因


对于
2&2
它返回
2
,但
2&2==2
返回
false

为什么?

console.log(“1&1:”,1&1);
log(“1&1==1:”,1&1==1);
控制台日志(“2&2:”,2&2);
log(“2&2==2:,2&2==2”);
控制台日志(“类型(2):”,类型2);

控制台日志(“typeof(2&2):”,typeof(2&2))
正如@jornsharpe所说,它不会返回
false
,而是返回
0
。它的计算结果为
2&(2==2)
<代码>(2和2)==2为


感谢您在javascript中编写2&2,这并不意味着2&2,而是转换 2转换成32位的数字,然后执行和操作,同样的,在二进制数中,数字不再是2 (2&2)==2不会返回true,
由于(1&1)==1返回true,因为在二进制操作中,1和1也返回1

它不返回
false
,而是返回
0
。它的计算结果为
2&(2==2)
<代码>(2和2)==2是
真的
。啊,是的。。。知道了。。。感谢偶数。对于奇数,它返回0。对于奇数,它返回1
(2和2)==2
返回
true
。我对二进制运算符很了解。答案是关于运算符优先级的。比较运算符(
==
)优先于二进制运算符。在分解状态下,
2&2===2
被评估为
2&true
,这与
2&1
相同,因为当评估为数字时,true被视为1。