javascript中按位或(|)用于组合二进制状态标志,通过2的幂次定义互不重叠的独立状态,用|合并、&检查、|=添加、&=~移除、^=切换状态,高效适用于权限与ui管理。

JavaScript 中按位或运算符(|)常用于组合多个二进制状态标志,本质是把多个“开关位”同时置为 1,形成一个复合状态值。
用二进制位表示独立状态
每个状态对应一个唯一的 2 的幂次(即只有一位是 1 的数),这样它们的二进制表示互不重叠:
-
ACTIVE = 1→0b0001 -
VISIBLE = 2→0b0010 -
EDITABLE = 4→0b0100 -
DELETABLE = 8→0b1000
用 | 组合多个状态
按位或会把参与运算的每个数中为 1 的位保留下来,相同位置只要有一个是 1,结果该位就是 1。例如:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
const state = ACTIVE | VISIBLE | EDITABLE;
→ 0b0001 | 0b0010 | 0b0100 = 0b0111 = 7
这个 7 就代表“激活 + 可见 + 可编辑”三种状态同时生效。
检查某个状态是否启用
用按位与(&)配合判断:若 (state & FLAG) === FLAG,说明该位被设置。
例如:if (state & VISIBLE) { /* 确实可见 */ }
因为 0b0111 & 0b0010 === 0b0010(非零,真值)。
添加、移除、切换状态的常用操作
-
添加状态:用
|=,如state |= DELETABLE; -
移除状态:用按位与加取反,如
state &= ~EDITABLE;(~4是...11111011,能清掉第 3 位) -
切换状态:用异或,如
state ^= VISIBLE;(1 变 0,0 变 1)
这种位标记方式省内存、速度快,适合权限控制、UI 状态管理等场景,但要注意避免混用非 2 的幂数值,否则位会冲突。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










