JavaScript:如何使用>> 0 = 1?

时间:2016-09-09 12:44:07

标签: javascript boolean bitwise-operators bit-shift

我一直在寻找答案但是,我能找到的就是为什么

true == 1 = true  
false == 0 = true

我仍然不了解JavaScript如何采用Boolean类型并将其添加到int类型

true >> 0 = 1 
false >> 1 = 0

1 个答案:

答案 0 :(得分:1)

首先,true在JavaScript中隐式转换为1(在控制台中尝试Number(true) + 1,这会产生2)。

此外>>数字向右移位,丢弃的位被移除。因此true >> 0 除了隐式转换 true1之外什么都不做(因为没有位移位)。

对于第二个示例,false被隐式转换为0,因为转移的位被丢弃,转移不会对结果产生影响。试试false >> 1000,它仍然是0

可以找到更好的解释here,感谢@ adam-beck,他还增加了另一个非常好的观点:

  

如果您对位移,按位运算符或甚至使用二进制数不太了解,请知道当您将(>>或<<)移位0时,您不会根本改变数字:152 >> 0 === 152