bitwise operator
通过 bitwise 优化状态定义
状态:
- isHover
- isOpen
其中任何一个状态为 truth
的时候 执行对应的逻辑
定义N个状态控制变量
isHover: true|false
如果增加新的控制条件的时候可能会很多,
if (isHover || isOpen || c || d ||...) {
//
}
bitwise
每一位表示一个状态
d | c | isOpen | isHover |
---|---|---|---|
0 | 0 | 0 | 0 |
state=0 // init state 0
hover 状态用第0位表示
activate hover
state = state | 2**0 // 1
inactive hover
state = state & ~(1 << (0+1)) // 0