【发布时间】:2011-08-10 11:12:15
【问题描述】:
以下函数旨在实现 IE 中的indexOf 属性。如果你曾经不得不这样做,我相信你以前见过。
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;
};
}
我想知道是否像作者在初始长度检查中所做的那样使用三个大于号?
var len = this.length >>> 0
在控制台中执行此操作只会返回我传递给它的对象的长度,而不是 true 或 false,这让我思考语法的目的。这是一些我不知道的高级 JavaScript Ninja 技术吗?如果有,请赐教!
【问题讨论】:
标签: javascript numbers operators