Uint8Array 数组类型表示一个 8 位无符号整型数组,创建时内容被初始化为 0。创建完后,可以以对象的方式或使用数组下标索引的方式引用数组中的元素。

语法格式

new Uint8Array(); // ES2017 最新语法
new Uint8Array(length); // 创建初始化为 0 的,包含 length 个元素的无符号整型数组
new Uint8Array(typedArray);
new Uint8Array(object);
new Uint8Array(buffer [, byteOffset [, length]]);

构造语法和参数的更多信息请参见 TypedArray.

静态属性

  • {{jsxref("TypedArray.BYTES_PER_ELEMENT", "Uint8Array.BYTES_PER_ELEMENT")}}
    • : 返回数组中元素的字节数,Uint8Array 中返回 1 字节。
  • Uint8Array.length
    • : 静态属性 length 一直为 0。想获知其真实长度(元素个数),请参阅 {{jsxref("TypedArray.prototype.length", "Uint8Array.prototype.length")}}。
  • {{jsxref("TypedArray", "Uint8Array.prototype")}}
    • : TypedArray 对象的原型。

静态方法

  • {{jsxref("TypedArray.from", "Uint8Array.from()")}}
    • : 从一个数组或可迭代的对象创建一个新的Uint8Array数组,可参见Array.from().
  • {{jsxref("TypedArray.of", "Uint8Array.of()")}}
    • : 通过一个可变数目的参数创建一个新的Uint8Array数组,可参见Array.of().

实例属性

还从其父接口 TypedArray 继承实例属性。

  • Uint8Array.prototype.constructor
    • : 返回创建实例属性的函数,默认为 Uint8Array 构造器。
  • {{jsxref("TypedArray.prototype.buffer", "Uint8Array.prototype.buffer")}} {{readonlyInline}}
    • : 返回由 Uint8Array引用的 ArrayBuffer ,在构造时期固定,所以是只读的。
  • {{jsxref("TypedArray.prototype.byteLength", "Uint8Array.prototype.byteLength")}} {{readonlyInline}}
    • : 返回Uint8Array长度(字节数)。在构造时期固定,所以是 只读的
  • {{jsxref("TypedArray.prototype.byteOffset", "Uint8Array.prototype.byteOffset")}} {{readonlyInline}}
    • : 返回Uint8Array 距离其 ArrayBuffer 起始位置的偏移(字节数)。在构造时期固定,所以是 只读的
  • {{jsxref("TypedArray.prototype.length", "Uint8Array.prototype.length")}} {{readonlyInline}}
    • : 返回保存在 Uint8Array中的元素数量。在构造时期固定,所以是 只读的

实例方法

从其父接口 TypedArray 继承实例方法。

示例

// 来自长度
var uint8 = new Uint8Array(2);
uint8[0] = 42;
console.log(uint8[0]); // 42
console.log(uint8.length); // 2
console.log(uint8.BYTES_PER_ELEMENT); // 1

// 来自数组
var arr = new Uint8Array([21, 31]);
console.log(arr[1]); // 31

// 来自另一个 TypedArray
var x = new Uint8Array([21, 31]);
var y = new Uint8Array(x);
console.log(y[0]); // 21

// 来自 ArrayBuffer
var buffer = new ArrayBuffer(8);
var z = new Uint8Array(buffer, 1, 4);

// 来自一个迭代器
var iterable = (function* () {
  yield* [1, 2, 3];
})();
var uint8 = new Uint8Array(iterable);
// Uint8Array[1, 2, 3]