ArrayBuffer.prototype.resize()
Baseline2024Newly 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: 8buffer.resize(12);console.log(buffer.byteLength);// Expected output: 12
構文
resize(newLength)
引数
newLength
ArrayBuffer
のサイズを変更する新しい長さ(バイト単位)です。
返値
undefined
です。
例外
TypeError
ArrayBuffer
が切り離されているか、サイズ変更できない場合に発生します。RangeError
newLength
がArrayBuffer
のmaxByteLength
より大きい場合に発生します。
解説
resize()
メソッドはArrayBuffer
をnewLength
引数で指定された大きさへサイズ変更します。 ただし、ArrayBuffer
がサイズ変更可能で、新しいサイズがArrayBuffer
のmaxByteLength
以下であることが条件です。新しいバイトは 0 に初期化されます。
また、resize()
を使用すると、ArrayBuffer
を成長させるだけでなく、縮小させることができることに注意してください。newLength
がArrayBuffer
の現在のbyteLength
より小さくなることが許容されています。
例
resize() の使用
この例では、最大16バイトの長さにサイズ変更可能な8バイトのバッファーを作成し、resizable
プロパティを調べて、resizable
が true を返した場合にサイズを変更します。
const buffer = new ArrayBuffer(8, { maxByteLength: 16 });if (buffer.resizable) { console.log("Buffer is resizable!"); buffer.resize(12);}
仕様書
Specification |
---|
ECMAScript® 2026 Language Specification # sec-arraybuffer.prototype.resize |