此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

ArrayBuffer.prototype.resize()

基线 2024
最近可用

自 July 2024 起,此特性已在最新浏览器中得到支持。但在较旧的设备或浏览器中可能无法运行。

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 大于该 ArrayBuffer 的 maxByteLength,则抛出该错误。

描述

resize() 方法将 ArrayBuffer 调整为 newLength 参数指定的大小,前提是该 ArrayBuffer 是可调整大小的并且新的大小小于或等于该 ArrayBuffer 的 maxByteLength。新字节被初始化为 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.resize(12);
}

规范

规范
ECMAScript® 2027 Language Specification
# sec-arraybuffer.prototype.resize

浏览器兼容性

参见