Possible Duplicate:
javascript >>> operator?
JavaScript triple greater than
Found this operator in such line of code:
var t = Object(this),
len = t.length >>> 0;
What does this operator mean?
Full code is below. It is the code of JS some method:
if (!Array.prototype.some) {
Array.prototype.some = function(fun /*, thisp */) {
"use strict";
if (this == null) throw new TypeError();
var t = Object(this),
len = t.length >>> 0;
if (typeof fun != "function") throw new TypeError();
var thisp = arguments[1];
for (var i = 0; i < len; i++) {
if (i in t && fun.call(thisp, t[i], i, t))
return true;
}
return false;
};
}
>>>is a right shift without sign extensionIf you use the
>>operator on a negative number, the result will also be negative because the original sign bit is copied into all of the new bits. With>>>a zero will be copied in instead.In this particular case it’s just being used as a way to restrict the
lengthfield to an unsigned 31 bit integer, or in other words to “cast” Javascript’s native IEEE754 “double” number into an integer.