作业帮 > 综合 > 作业

for (var i = 0,length = this.length >>> 0; i < length; i++)

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 06:38:57
for (var i = 0,length = this.length >>> 0; i < length; i++) 为什么要这么写 lenght>>>0?
这是prototype框架里的一个函数
function each(iterator,context) {
for (var i = 0,length = this.length >>> 0; i < length; i++) {
if (i in this) iterator.call(context,this[i],i,this);
}
}
不明白为什么要length = this.length >>> 0 ,什么情况下会有用呢?
用0补足的右移运算符
该运算符有两个运算数:a>>>b,当运算数无法被转换成整数时,运算结果的情况与左移运算符相同.
alert("a" >>> 2); // 0
alert("a" >>> NaN); // 0
alert(20 >>> NaN); // 20