首先简单了解一下最常见的位运算
-
与
&,两者都为1,才是101101 & 10101 = 00101 -
或
|,两者有一个为1,才是101101 | 10101 = 11101 -
异或
^,两者不同则为1,两者相同则为001101 ^ 10101 = 11000
多用于授权和鉴权
定义一些权限
VISITOR = 1<<1
VIP_USER = 1<<2
OPERATOR = 1<<3
ADMIN = 1<<4
授权 |
const user = VISITOR | VIP_USER | OPERATOR
鉴权 &
user & VISITOR 为 2
user & VIP_USER 为 4
user & OPERATOR 为 8
user & ADMIN 为 0
我们一般只求结果boolean,常常会这样写
!!(user & VISITOR) 为 ture
!!(user & VIP_USER) 为 ture
!!(user & OPERATOR) 为 ture
!!(user & ADMIN) 为 false