红糖糍粑
位操作符用于在最基本的层次上,即按内存中表示数值的位来操作数值。ECMAScript 中的所有数值都以 IEEE-754 64 位格式存储,但位操作符并不直接操作 64 位的值。而是先将 64 位的值转换成 32 位的整数,然后执行操作,最后再将结果转换回 64 位。对于开发人员来说,由于 64 位存储格式是透明的,因此整个过程就像是只存在 32 位的整数一样位运算 的操作数都会先对其进行抽象的 ToInt32 操作链接描述ToUint32: (Unsigned 32 Bit Integer)1.Let number be the result of calling ToNumber on the input argument.2.If number is NaN, +0, −0, +∞, or −∞, return +0.3.Let posInt be sign(number) × floor(abs(number)).4.Let int32bit be posInt modulo 232; that is, a finite integer value k of Number type with positive sign and less than 232 in magnitude such that the mathematical difference of posInt and k is mathematically an integer multiple of 232.5.Return int32bit.三四步就是个求整取余数的过程<<0 对实际的值没有进行具体的位移操作,但是仍然会进行其中的 ToInt32 操作,在一定的范围内就是简单的按绝对值取整,超出这个范围就会变成意想不到的值