在控制台中,当我键入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));
答案 0 :(得分:1)
正如@jonrsharpe所说,它不返回false
,而是返回0
。评估为2 & (2 === 2)
。 (2 & 2) === 2
是true
。
谢谢
答案 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