Uint8ClampedArray

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

Uint8ClampedArray 类型化数组表示一个 0–255 范围内的 8 位无符号整数数组。除非显式提供了初始化数据,否则内容将初始化为 0。一旦建立,您就可以使用对象的 方法或标准的数组索引语法(即使用方括号表示法)来引用数组中的元素。

Uint8ClampedArray 是隐藏的 TypedArray 类的子类。

构造函数

Uint8ClampedArray()

创建一个新的 Uint8ClampedArray 对象。

静态属性

也继承了其父类 TypedArray 的静态属性.

Uint8ClampedArray.BYTES_PER_ELEMENT

返回元素大小的数值。对于 Uint8ClampedArray,为 1

静态方法

继承了其父类 TypedArray 的静态方法.

实例属性

也继承了其父类 TypedArray 的实例属性.

这些属性定义在 Uint8ClampedArray.prototype 上,并由所有 Uint8ClampedArray 实例共享。

Uint8ClampedArray.prototype.BYTES_PER_ELEMENT

返回元素大小的数值。对于 Uint8ClampedArray,为 1

Uint8ClampedArray.prototype.constructor

创建实例对象的构造函数。对于 Uint8ClampedArray 实例,初始值为 Uint8ClampedArray 构造函数。

实例方法

继承了其父类 TypedArray 的实例方法.

示例

创建 Uint8ClampedArray 的不同方法

js
// From a length
const uint8c = new Uint8ClampedArray(2);
uint8c[0] = 42;
uint8c[1] = 1337;
console.log(uint8c[0]); // 42
console.log(uint8c[1]); // 255 (clamped)
console.log(uint8c.length); // 2
console.log(uint8c.BYTES_PER_ELEMENT); // 1

// From an array
const x = new Uint8ClampedArray([21, 31]);
console.log(x[1]); // 31

// From another TypedArray
const y = new Uint8ClampedArray(x);
console.log(y[0]); // 21

// From an ArrayBuffer
const buffer = new ArrayBuffer(8);
const z = new Uint8ClampedArray(buffer, 1, 4);
console.log(z.byteOffset); // 1

// From an iterable
const iterable = (function* () {
  yield* [1, 2, 3];
})();
const uint8cFromIterable = new Uint8ClampedArray(iterable);
console.log(uint8cFromIterable);
// Uint8ClampedArray [1, 2, 3]

规范

规范
ECMAScript® 2026 语言规范
# sec-typedarray-objects

浏览器兼容性

另见