SharedArrayBuffer.prototype.slice()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021.

SharedArrayBuffer.prototype.slice() メソッドは、新しい SharedArrayBuffer を生成し、その内容にこの SharedArrayBuffer のバイトを先頭位置 (含む) から末尾位置 (含まない) までをコピーして返します。先頭または末尾が負の値であった場合は、配列の先頭からではなく、末尾からの位置になります。このメソッドは Array.prototype.slice() と同じアルゴリズムです。

試してみましょう

構文

js
slice()
slice(begin)
slice(begin, end)

引数

begin 省略可

取り出す先頭位置を表す 0 から始まるインデックスです。

負のインデックスを使用して、配列の末尾からのオフセットを示すことが可能です。 slice(-2) は並びの最後の2つの要素を取り出します。

begin が undefined であった場合は、 slice0 の位置から取り出し始めます。

end 省略可

0 から始まるインデックスで、取り出す範囲の末尾のを示します。 slice はここまでを取り出しますが、 end は含めません。

例えば、 slice(1,4) は2番目から4番目までの要素を取り出します(インデックスが 1, 2, 3 の要素)。

負のインデックスを使用して、配列の末尾からのオフセットを示すことが可能です。 slice(2,-1) は 3 番目から、並びの最後から 2 番目までの要素を取り出します。

end が省略されると、 slice は並びの最後 (sab.byteLength) までの範囲を取り出します。

返値

取り出した要素をが入った新しい SharedArrayBuffer です。

slice() の使用

js
const sab = new SharedArrayBuffer(1024);
sab.slice(); // SharedArrayBuffer { byteLength: 1024 }
sab.slice(2); // SharedArrayBuffer { byteLength: 1022 }
sab.slice(-2); // SharedArrayBuffer { byteLength: 2 }
sab.slice(0, 1); // SharedArrayBuffer { byteLength: 1 }

仕様書

Specification
ECMAScript Language Specification
# sec-sharedarraybuffer.prototype.slice

ブラウザーの互換性

BCD tables only load in the browser

関連情報