В чем разница между Uint8Array
и Uint8ClampedArray
в JavaScript?
Я понимаю, что Uint8ClampedArray
используется с холстом для манипуляций с пикселями. Почему это и в чем польза?
Разница между Uint8Array и Uint8ClampedArray
Ответ 1
Глядя на примеры Uint8ClampedArray и Uint8Array, похоже, что разница как значения обрабатываются при назначении.
Если вы пытаетесь установить один элемент в зажатый массив на любое значение вне диапазона 0-255
, оно по умолчанию будет равно 0 или 255 (в зависимости от того, меньше или больше значение). Обычный массив Uint8Array
просто берет первый 8 бит значения.
Примеры:
var x = new Uint8ClampedArray([17, -45.3]);
console.log(x[0]); // 17
console.log(x[1]); // 0
console.log(x.length); // 2
var x = new Uint8Array([17, -45.3]);
console.log(x[0]); // 17
console.log(x[1]); // 211
console.log(x.length); // 2