ArrayBuffer.prototype.slice()
{{JSRef}}
The slice()
method of {{jsxref("ArrayBuffer")}}
instances returns a new ArrayBuffer
whose contents are a copy of this ArrayBuffer
’s bytes from start
, inclusive, up to end
, exclusive. If either start
or end
is negative, it refers to an index from the end of the array, as opposed to from the beginning.
{{InteractiveExample("JavaScript Demo: ArrayBuffer.slice()")}}
// Create an ArrayBuffer with a size in bytes
const buffer = new ArrayBuffer(16);
const int32View = new Int32Array(buffer);
// Produces Int32Array [0, 0, 0, 0]
int32View[1] = 42;
const sliced = new Int32Array(buffer.slice(4, 12));
// Produces Int32Array [42, 0]
console.log(sliced[0]);
// Expected output: 42
Syntax
slice()
slice(start)
slice(start, end)
Parameters
start
{{optional_inline}}
- : Zero-based index at which to start extraction, converted to an integer.
- Negative index counts back from the end of the buffer — if
-buffer.length <= start < 0
,start + buffer.length
is used. - If
start < -buffer.length
orstart
is omitted,0
is used. - If
start >= buffer.length
, an empty buffer is returned.
- Negative index counts back from the end of the buffer — if
- : Zero-based index at which to start extraction, converted to an integer.
end
{{optional_inline}}
- : Zero-based index at which to end extraction, converted to an integer.
slice()
extracts up to but not includingend
.- Negative index counts back from the end of the buffer — if
-buffer.length <= end < 0
,end + buffer.length
is used. - If
end < -buffer.length
,0
is used. - If
end >= buffer.length
orend
is omitted,buffer.length
is used, causing all elements until the end to be extracted. - If
end
implies a position before or at the position thatstart
implies, an empty buffer is returned.
- Negative index counts back from the end of the buffer — if
- : Zero-based index at which to end extraction, converted to an integer.
Return value
A new {{jsxref("ArrayBuffer")}}
containing the extracted elements. It is not resizable, even if the original was.
Examples
Copying an ArrayBuffer
const buf1 = new ArrayBuffer(8);
const buf2 = buf1.slice(0);
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
{{jsxref("ArrayBuffer")}}
{{jsxref("SharedArrayBuffer.prototype.slice()")}}