ArrayBuffer.prototype.resize()

Baseline 2024
新推出

自 ⁨2024 年 7 月⁩起,此功能可在最新的设备和浏览器版本上使用。此功能可能无法在较旧的设备或浏览器上使用。

ArrayBuffer 实例的 resize() 方法会将 ArrayBuffer 的大小调整为指定的字节数。

试一试

const buffer = new ArrayBuffer(8, { maxByteLength: 16 });

console.log(buffer.byteLength);
// Expected output: 8

buffer.resize(12);

console.log(buffer.byteLength);
// Expected output: 12

语法

js
resize(newLength)

参数

newLength

ArrayBuffer 调整到的新长度(以字节为单位)。

返回值

无(undefined)。

异常

TypeError

如果 ArrayBuffer 已分离或不可调整大小,则抛出此错误。

RangeError

如果 newLength 大于 ArrayBuffermaxByteLength,则抛出此错误。

描述

resize() 方法会将 ArrayBuffer 的大小调整为 newLength 参数指定的大小,前提是该 ArrayBuffer可调整大小的,并且新大小小于或等于 ArrayBuffermaxByteLength。新增的字节将初始化为 0。

请注意,您可以使用 resize() 来缩小或增大 ArrayBuffer — 允许 newLength 小于 ArrayBuffer 当前的 byteLength

示例

使用 resize()

在此示例中,我们创建一个 8 字节的可调整大小的缓冲区,其最大长度为 16 字节,然后检查其 resizable 属性,如果 resizable 返回 true,则调整其大小。

js
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });

if (buffer.resizable) {
  console.log("Buffer is resizable!");
  buffer.resize(12);
}

规范

规范
ECMAScript® 2026 语言规范
# sec-arraybuffer.prototype.resize

浏览器兼容性

另见