Это экспериментальная технология, часть предложения Harmony (ECMAScript 6).
Поскольку спецификация этой технологии ещё не стабилизировалась, проверьте таблицу совместимости её использования в различных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут быть изменены в будущих версиях браузеров в соответствии с изменениями в спецификации.
Сводка
Метод Math.clz32()
возвращает количество ведущих нулевых битов в 32-битном двоичном представлении числа.
Синтаксис
Math.clz32(x)
Параметры
x
- Число.
Описание
Название clz32
является сокращением для более длинного CountLeadingZeroes32
(ПосчтитатьВедущиеНули32
).
Если значение x
не является числом, оно будет сначала преобразовано в число, а потом в 32-битное беззнаковое целое число.
Если преобразованое 32-битное беззнаковое целое число равно 0
, метод вернёт 32
, поскольку все биты в числе равны 0
.
Этот метод особено полезен для систем, которые компилируются в JS, например, для Emscripten.
Примеры
Пример: использование метода Math.clz32()
Math.clz32(1); // 31 Math.clz32(1000); // 22 Math.clz32(); // 32 [NaN, Infinity, -Infinity, 0, -0, null, undefined, 'foo', {}, []].filter( function(n) { return Math.clz32(n) !== 32 }); // [] Math.clz32(true); // 31 Math.clz32(3.5); // 30
Полифилл
Math.clz32 = Math.clz32 || function(value) { value = Number(value) >>> 0; return value !== 0 ? 31 - Math.floor(Math.log(value + 0.5) / Math.log(2)) : 32; };
Спецификации
Спецификация | Статус | Комментарии |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Определение 'Math.clz32' в этой спецификации. |
Стандарт | Изначальное определение. |
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | 35 | 31 (31) | Нет | Нет | Нет |
Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | Нет | Нет | 31.0 (31) | Нет | Нет | Нет |