可能重复:
What is the JavaScript >>> operator and how do you use it?
Javascript 1.5 documentation中描述的Mozilla的Array.prototype.map()实现如下:
if (!Array.prototype.map)
{
Array.prototype.map = function(fun /*, thisp*/)
{
var len = this.length >>> 0;
if (typeof fun != "function")
throw new TypeError();
var res = new Array(len);
var thisp = arguments[1];
for (var i = 0; i < len; i++)
{
if (i in this)
res[i] = fun.call(thisp, this[i], i, this);
}
return res;
};
}
我正在努力理解的一句话是:
var len = this.length >>> 0;
Mozilla的Js 1.5 bit-wise operator reference,解释了&gt;&gt;&gt;是按位运算符零填充右移。
零填充右移
以二进制表示 b 移位 a (&lt; 32)右边的位,丢弃位 向下移动,并以零移动 从左边开始。
这是否提供某种安全性,返回 array.length 不会,或者这是某种类型的强制?