ArrayBuffer.prototype.resize()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

resize()ArrayBuffer インスタンスのメソッドで、この ArrayBuffer を指定されたサイズ(バイト単位)にサイズ変更します。

試してみましょう

構文

js
resize(newLength)

引数

newLength

ArrayBuffer のサイズを変更する新しい長さ(バイト単位)です。

返値

undefined です。

例外

TypeError

ArrayBuffer が切り離されているか、サイズ変更できない場合に発生します。

RangeError

newLengthArrayBuffermaxByteLength より大きい場合に発生します。

解説

resize() メソッドは ArrayBuffernewLength 引数で指定された大きさへサイズ変更します。 ただし、ArrayBufferサイズ変更可能で、新しいサイズが ArrayBuffermaxByteLength 以下であることが条件です。新しいバイトは 0 に初期化されます。

また、resize() を使用すると、ArrayBuffer を成長させるだけでなく、縮小させることができることに注意してください。newLengthArrayBuffer の現在の byteLength より小さくなることが許容されています。

resize() の使用

この例では、最大16バイトの長さにサイズ変更可能な8バイトのバッファーを作成し、resizable プロパティを調べて、resizable が true を返した場合にサイズを変更します。

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

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

仕様書

Specification
ECMAScript Language Specification
# sec-arraybuffer.prototype.resize

ブラウザーの互換性

BCD tables only load in the browser

関連情報