Uint8Array和Uint8ClampedArray之间的区别

时间:2014-02-17 02:47:14

标签: javascript arrays memory-management clamp

JavaScript中Uint8ArrayUint8ClampedArray之间有什么区别? 我知道Uint8ClampedArray与画布一起用于像素操作。为什么这样做有什么好处?

1 个答案:

答案 0 :(得分:74)

查看Uint8ClampedArrayUint8Array的示例,看起来不同的是分配时如何处理值。

如果您尝试将一个元素设置为一个钳位数组,使其超出范围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