阅读背景:

【cloudgamer框架研究之 】 Array.prototype.forEach的困惑

来源:互联网 
if (!Array.prototype.forEach)
{
  Array.prototype.forEach = function(fun /*, thisp*/)//l@@k /*, thisp*/什么用法
  {
    var len = this.length >>> 0;//l@@k什么用法
    if (typeof fun != "function")
      throw new TypeError();

    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in this)
        fun.call(thisp, this[i], i, this);
    }
  };
}

16 个解决方案

#1


Array.prototype.forEach(callBack: Function, thisObject: Object) 

作用:对数组进行迭代操作,它有两个参数,第一个参数callBack是每次迭代所执行的函数,第二个参数thisObject可选,是要绑定到迭代执行的函数上的对象(也就是函数callBack中的this所指向的对象)

#2


/*, thisp*/

注释

常用于定义变量时 直接在后面写注释。

eg:

var bgUrl='',/*返回时url*/ ulr='';

#3


>>>(右移,零填充)。

#4


引用 2 楼 sandy945 的回复:
/*, thisp*/

 注释

 常用于定义变量时 直接在后面写注释。

 eg:

 var bgUrl='',/*返回时url*/ ulr='';


不是 @cc_on@这样的吧,解释器应该无视吧

#5


引用 1 楼 wiki14 的回复:
Array.prototype.forEach(callBack: Function, thisObject: Object)

 作用:对数组进行迭代操作,它有两个参数,第一个参数callBack是每次迭代所执行的函数,第二个参数thisObject可选,是要绑定到迭代执行的函数上的对象(也就是函数callBack中的this所指向的对象)
第二个参数thisObject可选  可选如何实现,能猜出来么?

#6


注释掉,不需要了,下面使用了arguments[1]来取的

第二个转化为int型,var aa="str";
alert(aa>>>0);

#7


>>>

无符号右移运算符

#8


引用 3 楼 wiki14 的回复:
>>>(右移,零填充)。

5>>>0  是什么呢?

>>>三个>????

#9


之前 那个匿名函数的问题 还有待进一步确认

#10


引用 9 楼 sandy945 的回复:
之前 那个匿名函数的问题 还有待进一步确认

cloudgamer  说的有道理啊 ,后来感觉还是不够完美

web版的说法:

https://topic.csdn.net/u/20100120/21/16ddc95b-bbe8-4c3c-9a98-d91a409d6474.html?52798

#11


JavaScript:alert(5>0)  =>true
JavaScript:alert(5>>0)  =>5
JavaScript:alert(5>>>0) =>5
JavaScript:alert(5>>>>0)  =>没有反应

#12


引用 4 楼 plglenn8 的回复:
引用 2 楼 sandy945 的回复:
/*, thisp*/

注释

常用于定义变量时 直接在后面写注释。

eg:

var bgUrl='',/*返回时url*/ ulr='';


不是 @cc_on@这样的吧,解释器应该无视吧

就是使用/**/ 将注释 插入到代码中

#13



var temp
temp = -14 >>> 2
变量 temp 的值为 -14 (即二进制的 11111111 11111111 11111111 11110010),向右移两位后等于 1073741820 (即二进制的 00111111 11111111 11111111 11111100)。

#14


result = expression1 >>> expression2
其中result是任何变量。
expression1是任何表达式。
expression2是任何表达式。

>>> 运算符把 expression1 的各个位向右移 expression2 指定的位数。
右移后左边空出的位用零来填充。移出右边的位被丢弃。

#15


>>>   原来这是js的右移运算符,杯具

#16


cloudgamer  说的有道理啊 

我不这样认为

分享到: