小数和 0 使用位运算符能得到对应的整数。这个知识点在计算 expirationTime
中有用到。
1.1 | 0 => 1
可以看到在 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 // 3context & ConcurrentMode // 1context & StrictMode // 2