Битовый оператор >>>
ограничен между 0 и 2^32-1
включительно (4 294 967 295). Используя >>>
, платформа гарантирует, что цикл не будет выполняться почти бесконечно.
PS. Контекст кода:
Array.implement({every: function(fn, bind){
for (var i = 0, l = this.length >>> 0; i < l; i++){
if ((i in this) && !fn.call(bind, this[i], i, this)) return false;
}
Поскольку i
инициализируется с нуля и увеличивается на целое число 1, а свойство length
всегда является целым числом, отрицательных побочных эффектов нет. Другое применение метода >>>
- округление, чтобы преобразовать десятичное число в целое число.