为什么 1 & 1 === 1 returns 为真而 2 & 2 === 2 returns 为假?
Why 1 & 1 === 1 returns true while 2 & 2 === 2 returns false?
在控制台中,当我输入 1 & 1
时 returns 1
,这就是为什么 1 & 1 === 1
returns true
.
对于2 & 2
它returns2
但是2 & 2 === 2
returnsfalse
为什么?
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));
正如@jonrsharpe 所说,它不是 return false
,而是 return 0
。它被评估为 2 & (2 === 2)
。 (2 & 2) === 2
是 true
。
谢谢
in javascript 当你写 2 & 2 这并不意味着 2 && 2 而是它转换
2 转换为 32 位数字并执行 AND 运算,与您在二进制数字中学到的相同,因此数字不会再次为 2
(2 & 2) === 2 不会 return 正确,
as (1 & 1) === 1 returns true 因为二进制运算 1 AND 1 returns 1 以及
在控制台中,当我输入 1 & 1
时 returns 1
,这就是为什么 1 & 1 === 1
returns true
.
对于2 & 2
它returns2
但是2 & 2 === 2
returnsfalse
为什么?
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));
正如@jonrsharpe 所说,它不是 return false
,而是 return 0
。它被评估为 2 & (2 === 2)
。 (2 & 2) === 2
是 true
。
谢谢
in javascript 当你写 2 & 2 这并不意味着 2 && 2 而是它转换 2 转换为 32 位数字并执行 AND 运算,与您在二进制数字中学到的相同,因此数字不会再次为 2 (2 & 2) === 2 不会 return 正确, as (1 & 1) === 1 returns true 因为二进制运算 1 AND 1 returns 1 以及