按位运算符>>>是什么在Mozilla的map()实现中做什么?

时间:2010-07-27 22:09:15

标签: javascript mozilla

  

可能重复:
  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 不会,或者这是某种类型的强制?

0 个答案:

没有答案