[强调添加]
|
是一个位运算符,所以会出现这种情况。hash = hash | 0;
执行按位 or
操作,即将哈希值和零进行按位或
运算。
对于其他按位运算符,您也会观察到类似的行为,例如:
var x = 4;
console.log(4 >> 1); // right shift bitwise operator
感谢@Keith在评论中提到“JS中的位运算仅适用于32位有符号整数”。
0
。如果我们执行|操作,我们将得到5个字节。 - user6096764
>>> 0
更为常见:它通过转换为无符号32位整数来确保结果为正数。 - Bergi