Loloao / my-blog

my first blog
0 stars 0 forks source link

可以使用`&`和`|`来对配置进行组合和判断 #25

Open Loloao opened 4 years ago

Loloao commented 4 years ago

|表示位或,&表示位与,|的一个用法是取整,即

1.2 | 0 === 1
2.1 | 0 === 2

我们还可以使用这两个操作符来进行一些组合和判断操作

// 比如以下是 react 源码中的一段判断模式的代码
// 0b 开头表示二进制写法
const NoContext = 0b000
const ConcurrentMode = 0b001
const StrictMode = 0b010

// 我们可以使用 & 判断当前模式是否匹配其他模式
let mode = NoContext
console.log(mode & ConcurrentMode) // 0
// 通过 | 进行模式的合并
mode |= ConcurrentMode
console.log(mode & ConcurrentMode) // 1
console.log(mode & StrictMode) // 0
console.log(mode & NoContext) // 0 注意此处因为 NoContext 为 000 比较特殊,设定为只要为其他模式就不是这个模式