此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
Uint8ClampedArray
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
Uint8ClampedArray(8 位无符号整型固定数组)类型化数组表示一个由值固定在 0-255 区间的 8 位无符号整型组成的数组;如果你指定一个在 [0,255] 区间外的值,它将被替换为 0 或 255;如果你指定一个非整数,那么它将被设置为最接近它的整数。(数组)内容被初始化为 0。一旦(数组)被创建,你可以使用对象的方法引用数组里的元素,或使用标准的数组索引语法(即使用方括号标记)。
语法
new Uint8ClampedArray(length); new Uint8ClampedArray(typedArray); new Uint8ClampedArray(object); new Uint8ClampedArray(buffer [, byteOffset [, length]]);
关于构造函数语法和参数的更多信息,参见 TypedArray 。
静态属性
Uint8ClampedArray.BYTES_PER_ELEMENT-
返回元素大小的一个数值。对
Uint8ClampedArray而言是 1。 Uint8ClampedArray.prototype.length-
静态长度属性值为 0。对于实际长度(元素的数量),见
Uint8ClampedArray.prototype.length。 Uint8ClampedArray.prototype-
原型是 TypedArray(类型化数组)对象。
静态方法
Uint8ClampedArray.from()-
从一个类数组或可枚举对象创建一个新的
Uint8ClampedArray。参见Array.from()。 Uint8ClampedArray.of()-
通过一个可选数量参数来创建一个新的
Uint8ClampedArray。参见Array.of()。
实例属性
还从其父接口 TypedArray 继承实例属性。
Uint8ClampedArray.prototype.constructor-
返回创建一个实例原型的函数。这是
Uint8ClampedArray默认的构造函数。 Uint8ClampedArray.prototype.buffer只读-
返回由
Uint8ClampedArray引用的ArrayBuffer。在创建时所固定下来,因此只能读取。 Uint8ClampedArray.prototype.byteLength只读-
返回从
ArrayBuffer开始的Uint8ClampedArray的(字节的)长度。在创建时所固定下来,因此只能读取。 Uint8ClampedArray.prototype.byteOffset只读-
返回从
ArrayBuffer开始的Uint8ClampedArray的(字节的)偏移。在创建时所固定下来,因此只能读取。 Uint8ClampedArray.prototype.length只读-
返回
UintClamped8Array具有的元素数量。在创建时所固定下来,因此只能读取。
实例方法
从其父接口 TypedArray 继承实例方法。
示例
创建一个 Uint8ClampedArray 的不同方式:
// From a length
var uintc8 = new Uint8ClampedArray(2);
uintc8[0] = 42;
uintc8[1] = 1337;
console.log(uintc8[0]); // 42
console.log(uintc8[1]); // 255 (clamped)
console.log(uintc8.length); // 2
console.log(uintc8.BYTES_PER_ELEMENT); // 1
// From an array
var arr = new Uint8ClampedArray([21, 31]);
console.log(arr[1]); // 31
// From another TypedArray
var x = new Uint8ClampedArray([21, 31]);
var y = new Uint8ClampedArray(x);
console.log(y[0]); // 21
// From an ArrayBuffer
var buffer = new ArrayBuffer(8);
var z = new Uint8ClampedArray(buffer, 1, 4);
// From an iterable
var iterable = (function* () {
yield* [1, 2, 3];
})();
var uintc8 = new Uint8ClampedArray(iterable);
// Uint8ClampedArray[1, 2, 3]
规范
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-typedarray-objects> |
浏览器兼容性
Enable JavaScript to view this browser compatibility table.
兼容性注意事项
从 ECMAScript 2015 开始, Uint8ClampedArray 构造函数需要用一个 new 操作符来构建。从现在开始,不使用 new 来调用一个 Uint8ClampedArray 构造函数将会抛出一个 TypeError。
var dv = Uint8ClampedArray([1, 2, 3]);
// TypeError: calling a builtin Uint8ClampedArray constructor
// without new is forbidden
var dv = new Uint8ClampedArray([1, 2, 3]);