{{JSRef}}

ArrayBuffer 实例的 resize() 方法将 ArrayBuffer 调整为指定的大小,以字节为单位。

{{InteractiveExample("JavaScript Demo: ArrayBuffer.resize()")}}

```js interactive-example 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-nolint resize(newLength)

参数

  • newLength
    • : ArrayBuffer 要调整到的新的长度,以字节为单位。

返回值

无(undefined)。

异常

  • TypeError
    • : 如果 ArrayBuffer 已分离或不可调整大小,则抛出该错误。
  • RangeError
    • : 如果 newLength 大于该 ArrayBuffer 的 {{jsxref("ArrayBuffer/maxByteLength", "maxByteLength")}},则抛出该错误。

描述

resize() 方法将 ArrayBuffer 调整为 newLength 参数指定的大小,前提是该 ArrayBuffer可调整大小的并且新的大小小于或等于该 ArrayBuffer 的 {{jsxref("ArrayBuffer/maxByteLength", "maxByteLength")}}。新字节被初始化为 0。

请注意,你可以使用 resize() 来缩小和增大 ArrayBuffer——即使 newLength 小于 ArrayBuffer 的当前 {{jsxref("ArrayBuffer/byteLength", "byteLength")}}。

示例

使用 resize()

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

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

if (buffer.resizable) {
  console.log("缓冲区大小是可调整的!");
  buffer.resize(12);
}