Uint8Array() 构造函数

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Uint8Array() 构造函数创建 Uint8Array 对象。除非明确提供初始化数据,否则内容将初始化为 0

¥The Uint8Array() constructor creates Uint8Array objects. The contents are initialized to 0 unless initialization data is explicitly provided.

语法

¥Syntax

js
new Uint8Array()
new Uint8Array(length)
new Uint8Array(typedArray)
new Uint8Array(object)

new Uint8Array(buffer)
new Uint8Array(buffer, byteOffset)
new Uint8Array(buffer, byteOffset, length)

注意:Uint8Array() 只能与 new 一起构建。尝试在没有 new 的情况下调用它会抛出 TypeError

¥Note: Uint8Array() can only be constructed with new. Attempting to call it without new throws a TypeError.

参数

¥Parameters

参见 TypedArray

¥See TypedArray.

例外情况

¥Exceptions

参见 TypedArray

¥See TypedArray.

示例

¥Examples

创建 Uint8Array 的不同方法

¥Different ways to create a Uint8Array

js
// From a length
const uint8 = new Uint8Array(2);
uint8[0] = 42;
console.log(uint8[0]); // 42
console.log(uint8.length); // 2
console.log(uint8.BYTES_PER_ELEMENT); // 1

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

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

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

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

规范

Specification
ECMAScript Language Specification
# sec-typedarray-constructors

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看