【发布时间】:2011-03-21 21:04:02
【问题描述】:
我正在查看来自 Mozilla 的代码,该代码向 Array 添加了过滤器方法,其中有一行代码让我感到困惑。
var len = this.length >>> 0;
我以前从未见过 >>> 在 JavaScript 中使用过。
它是什么,它有什么作用?
【问题讨论】:
-
@CMS 没错,这个代码/问题来自那些;但是,这里的回复比以前的回复更具体、更有价值。
-
或者这是一个错误,或者 Mozilla 家伙假设 this.length 可能是 -1。 >>> 是无符号移位运算符,因此 var len 将始终为 0 或更大。
-
Ash Searle 发现了它的用途 - 将 JS 之王(Doug Crockford)的实现推翻为
Array.prototype.push/Array.prototype.pop- hexmen.com/blog/2006/12/push-and-pop(尽管他做了测试,哈哈)。
标签: javascript operators bit-shift