Uint8Array和Uint8ClampedArray之间的区别

Uint8ArrayUint8ClampedArray在JavaScript中有什么区别? 我明白, Uint8ClampedArray是用于canvas进行像素操作。 为什么是这样,有什么好处?

看看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