Uint8Array
和Uint8ClampedArray
JavaScript和有什么不一样?我了解这Uint8ClampedArray
是与画布一起用于像素操作的。为什么会这样,好处是什么?
Answers:
看一下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
Uint8Array
性能更高,因为不需要执行边界检查?
Uint8Array([0.9])
是[0]
的,但Uint8ClampedArray([0.9])
是[1]
,即。夹紧版本使用四舍五入,而基本版本使用下限。