Подтвердить что ты не робот

Разница между Uint8Array и Uint8ClampedArray

В чем разница между Uint8Array и Uint8ClampedArray в JavaScript? Я понимаю, что Uint8ClampedArray используется с холстом для манипуляций с пикселями. Почему это и в чем польза?

4b9b3361

Ответ 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