相关疑难解决方法(0)

什么是JavaScript >>>运算符以及如何使用它?

我正在查看Mozilla的代码,它为Array添加了一个过滤方法,它有一行代码让我很困惑.

var len = this.length >>> 0;
Run Code Online (Sandbox Code Playgroud)

我以前从未见过用于JavaScript的>>>.
它是什么,它做了什么?

javascript operators bit-shift

141
推荐指数
6
解决办法
3万
查看次数

零填充位移0有什么用呢?(a >>> 0)

我刚刚在Mozilla Javascript文档中看到了这篇文章:

var len = this.length >>> 0;  
Run Code Online (Sandbox Code Playgroud)

我不太明白为什么要这样做.有什么好处呢填零,右移this.length0呢?据我所知,它什么都没做.它是否安全地为其建立默认值len,即使this.length它不是整数?这可能是这样吗?如果是这样,>> 0和之间的区别是>>> 0什么?

javascript bitwise-operators

55
推荐指数
0
解决办法
5117
查看次数

为什么在提取数组的长度时使用/*,*/around参数以及为什么要使用>>>?

我在developer.mozilla.org网站的indexOf页面上查看了javascript参考手册,并注意到indexOf的实现代码中的一些内容,希望有人能向我解释.

为了节省每个人到mozilla网站的往返,这里是整个功能:

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}
Run Code Online (Sandbox Code Playgroud)

我不明白的是/*, from*/函数声明中的,以及>>>提取数组长度(var len = this.length >>> 0;)的零填充右移.

javascript

6
推荐指数
1
解决办法
577
查看次数

有关Mozilla的Array.prototype.indexOf中的代码的问题

这是Mozilla的Array.prototype.indexOf中的Mozilla代码

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt)
  {
    var len = this.length >>> 0; // What does ">>>" do?

    var from = Number(arguments[1]) || 0;
    from = (from < 0) ? Math.ceil(from): Math.floor(from); 
    if (from < 0)from += len;

    for (; from < len; from++)
    {
      if (from in this && this[from] === elt)return from;
    }
    return -1;
  };
}
Run Code Online (Sandbox Code Playgroud)

我不明白一些语法.
">>>"在上面的代码中做了什么?

javascript

1
推荐指数
1
解决办法
603
查看次数