Float16Array

基准线 2025
新推出

自 ⁨2025 年 4 月⁩起,此功能适用于最新设备和浏览器版本。此功能可能不适用于较旧的设备或浏览器。

Float16Array 类型化数组表示一个 16 位浮点数数组,采用平台的字节序。如果需要控制字节序,请改用 DataView。除非显式提供了初始化数据,否则其内容将初始化为 0。一旦建立,您就可以使用该对象的数组方法或标准的数组索引语法(即使用方括号表示法)来引用数组中的元素。

Float16Array 是隐藏的 TypedArray 类的子类。

注意: Float16 的支持并非普遍存在,无论是在 JavaScript API 还是底层 CPU 架构方面。在某些平台上使用它可能会导致性能下降。它旨在与高度优化和性能敏感的系统进行交互,例如 基于浮点数的 canvas、WebGPU、WebGL 以及深度学习模型,包括 stable diffusion

构造函数

Float16Array()

创建一个新的 Float16Array 对象。

静态属性

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

Float16Array.BYTES_PER_ELEMENT

返回每个元素的大小(字节数)。对于 Float16Array,此值为 2

静态方法

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

实例属性

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

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

Float16Array.prototype.BYTES_PER_ELEMENT

返回每个元素的大小(字节数)。对于 Float16Array,此值为 2

Float16Array.prototype.constructor

创建实例对象的构造函数。对于 Float16Array 实例,其值为 Float16Array 构造函数。

实例方法

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

示例

创建 Float16Array 的不同方法

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

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

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

// From an ArrayBuffer
const buffer = new ArrayBuffer(32);
const z = new Float16Array(buffer, 4, 4);
console.log(z.byteOffset); // 4

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

规范

规范
ECMAScript® 2026 语言规范
# sec-float16array

浏览器兼容性

另见