">>>"在javascript中的含义是什么?

var*_*r x 9 javascript

我有这条javascript代码,我试图理解

return ( n >>> 0 ) * 2.34e10;
Run Code Online (Sandbox Code Playgroud)

那么>>>意味着什么?

并提前感谢...这是我关于SO的第一个问题

Ski*_*ick 17

这是一个零填充右移.这对正整数或0都没有任何作用,但它对负数做了有趣的事情(因为最重要的位变为零).

 2 >>> 0 === 2
 1 >>> 0 === 1
 0 >>> 0 === 0
-1 >>> 0 === 4294967295
-2 >>> 0 === 4294967294
-3 >>> 0 === 4294967293
Run Code Online (Sandbox Code Playgroud)

应该注意(感谢Andy!),在进行移位之前,JavaScript中的位移会将参数转换为带符号的32位整数.因此>>> 0基本上做一个Math.floor正数:

1.1 >>> 0 === 1
1.9 >>> 0 === 1
Run Code Online (Sandbox Code Playgroud)