ArrayBuffer.prototype.resize()

Baseline 2024
Newly available

Since July 2024, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

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

resize()ArrayBuffer インスタンスのメソッドで、この 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

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® 2025 Language Specification
# sec-arraybuffer.prototype.resize

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
resize

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

関連情報