位运算符

小数和 0 使用或运算符能得到对应的整数。这个知识点在计算 expirationTime 中有用到。

1.1 | 0 => 1

位运算在 React 的运用

可以看到在 React 中存在大量对位运算声明的环境信息。比如下面摘自源码

var NoContext = 0b000;
var ConcurrentMode = 0b001;
var StrictMode = 0b010;
var ProfileMode = 0b100;

使用二进制的数字声明变量有什么好处呢? 答案是简单易用。

  • 判断是否是 ConcurrentMode
NoContext & ConcurrentMode // 0
  • 使用 ConcurrentMode
NoContext | ConcurrentMode // 1
  • 使用 ConcurrentMode 以及 StrictMode
var context = NoContext | ConcurrentMode | StrictMode // 3
context & ConcurrentMode // 1
context & StrictMode // 2