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

时间:2018-07-30 14:30:37

标签: javascript binary operator-keyword

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

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

为什么?

console.log("1 & 1: ", 1 & 1);
console.log("1 & 1 === 1: ", 1 & 1 === 1);
console.log("2 & 2: ", 2 & 2);
console.log("2 & 2 === 2: ", 2 & 2 === 2);
console.log("typeof(2): ", typeof 2);
console.log("typeof(2 & 2): ", typeof(2 & 2));

2 个答案:

答案 0 :(得分:1)

正如@jonrsharpe所说,它不返回false,而是返回0。评估为2 & (2 === 2)(2 & 2) === 2true

谢谢

答案 1 :(得分:0)

在javascript中,当您编写2&2时,这并不意味着2 && 2而是将其转换 将2转换为32位数字并执行AND操作,您在二进制数字中学习了相同的AND,因此数字不再是2 (2&2)=== 2不会返回true, as(1&1)=== 1返回true,因为在二进制运算1上,AND 1也返回1