不管是前端还是后端的伙伴,在工作中会经常遇到权限控制的场景,业务上无非就几种权限:
页面权限、操作权限、数据权限
,不同公司根据业务需要都采取不同的方法区控制权限,我们这里讨论一下使用JavaScript
中的位运算符来控制权限。
进制类型
JavaScript
中提供的进制表示方法有四种:十进制、二进制、十六进制、八进制
。
对于数值字面量,主要使用不同的前缀来区分:
- 十进制:取值数字 0-9;不用前缀。
- 二进制(Binary): 取值数字 0 和 1 ;前缀 0b 或 0B。
- 十六进制(Hexadecimal):取值数字 0-9 和 a-f ;前缀 0x 或 0X。
- 八进制(Octal):取值数字 0-7 ;前缀 0o 或 0O (ES6规定)。
位运算符
什么是位运算符?
位运算符指的是二进制位的运算,先将十进制数转成二进制后再进行运算。 在二进制位运算中,1表示true,0表示false。
JavaScript
中的按位操作符有:
运算符 | 用法 | 描述 |
---|---|---|
按位与(AND) | A & B | 如果对应的二进制位都为 1,则该二进制位为 1 |
按位或(OR) | A 或 B | 如果对应的二进制位有一个为 1,则该二进制位为 1 |
按位异或(XOR) | A ^ B | 如果对应的二进制位只有一个为 1,则该二进制位为 1 |
按位非(NOT) | ~A | 反转所有二进制位,即 1 转换为 0,0 转换为 1 |
按位左移 | A << B | 将所有二进制位统一向左移动指定的位数,并在最右侧补 0 |
按位右移 | A >> B | 按位右移(有符号右移):将所有二进制位统一向右移动指定的位数,并拷贝最左侧的位来填充左侧 |
无符号右移 | A >>> B | 按位右移零(无符号右移):将所有二进制位统一向右移动指定的位数,并在最左侧补 0 |
示例:
const A