我有一段我想理解的 JavaScript 代码
return ( n >>> 0 ) * 2.34e10;
那么>>>是什么意思呢?
预先感谢...这是我的第一个问题
It's a 零填充右移 https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators#.3e.3e.3e_(Zero-fill_right_shift)。这对正整数或 0 没有任何作用,但对负数却会产生有趣的效果(因为最高有效位变为零 http://en.wikipedia.org/wiki/Two's_complement).
2 >>> 0 === 2
1 >>> 0 === 1
0 >>> 0 === 0
-1 >>> 0 === 4294967295
-2 >>> 0 === 4294967294
-3 >>> 0 === 4294967293
应该注意(感谢 Andy!)JavaScript 中的位移位将参数转换为有符号 32 位整数 https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators#Summary在进行变速之前。所以>>> 0
本质上是做了一个Math.floor
关于正数:
1.1 >>> 0 === 1
1.9 >>> 0 === 1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)