gpt4 book ai didi

条件中的javascript按位运算

转载 作者:行者123 更新时间:2023-11-30 08:24:34 24 4
gpt4 key购买 nike

我试图了解按位运算在 Javascript 中的工作原理,尤其是用作条件结果时。

const number = 19

if(number & 1) {
console.log('one')
}
if(number & 2) {
console.log('two')
}
if(number & 4) {
console.log('four')
}
if(number & 8) {
console.log('eight')
}
if(number & 16) {
console.log('sixteen')
}
// one two sixteen

if(number & 1 === 1) {
console.log('one')
}
if(number & 2 === 2) {
console.log('two')
}
if(number & 4 === 4) {
console.log('four')
}
if(number & 8 === 8) {
console.log('eight')
}
if(number & 16 === 16) {
console.log('sixteen')
}
// one two four eight sixteen

代码的第一部分产生了我期望的一二十六。但是代码的第二部分产生一二四八十六。由于 number & 4 应该为 0,因此不应在此处打印出“四”,“八”也一样。我在这里误解了什么?

最佳答案

您遇到了 operator precendence 的问题: === 的优先级高于 &number & 1 === 1 将因此被评估为 number & (1 === 1)

要解决这个问题,您必须添加适当的分组:

(number & 1) === 1

关于条件中的javascript按位运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47741316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com