此页面由社区从英文翻译而来。了解更多并加入 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。一旦(数组)被创建,你可以使用对象的方法引用数组里的元素,或使用标准的数组索引语法(即使用方括号标记)。
In this article
语法
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 lengthvar uintc8 = new Uint8ClampedArray(2);uintc8[0] = 42;uintc8[1] = 1337;console.log(uintc8[0]); // 42console.log(uintc8[1]); // 255 (clamped)console.log(uintc8.length); // 2console.log(uintc8.BYTES_PER_ELEMENT); // 1// From an arrayvar arr = new Uint8ClampedArray([21, 31]);console.log(arr[1]); // 31// From another TypedArrayvar x = new Uint8ClampedArray([21, 31]);var y = new Uint8ClampedArray(x);console.log(y[0]); // 21// From an ArrayBuffervar buffer = new ArrayBuffer(8);var z = new Uint8ClampedArray(buffer, 1, 4);// From an iterablevar iterable = (function* () { yield* [1, 2, 3];})();var uintc8 = new Uint8ClampedArray(iterable);// Uint8ClampedArray[1, 2, 3]规范
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-typedarray-objects> |
浏览器兼容性
兼容性注意事项
从 ECMAScript 2015 开始,Uint8ClampedArray 构造函数需要用一个new 操作符来构建。从现在开始,不使用new 来调用一个Uint8ClampedArray 构造函数将会抛出一个TypeError。
var dv = Uint8ClampedArray([1, 2, 3]);// TypeError: calling a builtin Uint8ClampedArray constructor// without new is forbiddenvar dv = new Uint8ClampedArray([1, 2, 3]);