来源:可组合的散列数值【渡一教育】例如后台管理系统的权限校验,假设某一数据有增、删、改、查四项权限,他们各自只可能是有或没有两个情况,不同用户所拥有的权限不同但都是它们的组合12345678910111213141516171819// 这样做难以进行组合// const CREATE = 1// const DELETE = 2// const UPDATE = 3// const DETAIL = 4const CREATE = 0b0001const DELETE = 0b0010const UPDATE = 0b0100const DETAIL = 0b1000// 用或运算组合权限const user1 = CREATE | DELETE // 用户1具有CREATE和DELETE 权限const user2 = DELETE | DETAIL | UPDATE // 用户2具有DELETE、DETAIL和UPDATE权限console.log(user1.toString(2), user2.toString(2)) // -> 0011 1110// 用且运算检查权限const hasCreate = (user1 & CREATE) === CREATE // 检查用户1是否具有CREATE权限console.log(hasCreate) // -> true