以下函數旨在實現IE中的indexOf
屬性。如果你曾經這樣做過,我相信你以前見過。奇怪的javascript運算符:expr >>> 0
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
在控制檯這樣做只是返回我傳遞給它,而不是真或假的對象,這給我留下回味的語法爲目的的長度。這是一些我不知道的高級JavaScript忍者技術嗎?如果是這樣,請賜教!
哇,我waaaaay關閉:)謝謝先生,我已開悟,你得到的剔。 – Hacknightly 2011-04-21 16:46:34
兩秒太慢。 Grats! – 2011-04-21 16:47:35
那麼在例子'var len = this.length >>> 0'中究竟是什麼效果呢?這似乎什麼都不做。 – 2011-04-21 16:49:00