默认javascript语言博文逻辑运算1. & 按位与 2. | 按位或 3. ^ 按位异或 4. ~ 按位非 5. <<左移 6. >>有符号右移 7. >>>无符号右移 异或具体实现(javascript版)class Permission { // 是否允许查询,二进制第1位,0表示否,1表示是 static SELECT = 1 << 0; // 0001 // 是否允许新增,二进制第2位,0表示否,1表示是 static INSERT = 1 << 1; // 0010 // 是否允许修改,二进制第3位,0表示否,1表示是 static UPDATE = 1 << 2; // 0100 // 是否允许删除,二进制第4位,0表示否,1表示是 static REMOVE = 1 << 3; // 1000 // 存储目前的权限状态 static TEST = 1 << 4; constructor() { this.flag = 0; } /** * 重新设置权限 */ setPermission(permission) { this.flag = permission; } /** * 添加一项或多项权限 */ enable(permission) { this.flag |= permission; } /** * 删除一项或多项权限 */ disable(permission) { this.flag &= ~permission; } /** * 是否拥某些权限 */ isAllow(permission) { console.log(this.flag); console.log(permission); return (this.flag & permission) == permission; } /** * 是否禁用了某些权限 */ isNotAllow(permission) { return (this.flag & permission) == 0; } /** * 是否仅仅拥有某些权限 */ isOnlyAllow(permission) { console.log(permission, this.flag); return this.flag == permission; } } JavaScript