ArrayBuffer.prototype.slice() - JavaScript | MDN

Try it

// 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

js

slice()
slice(start)
slice(start, end)

Parameters

start Optional

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 or start is omitted, 0 is used.
  • If start >= buffer.length, an empty buffer is returned.
end Optional

Zero-based index at which to end extraction, converted to an integer. slice() extracts up to but not including end.

  • 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 or end is omitted is undefined, buffer.length is used, causing all elements until the end to be extracted.
  • If end implies a position before or at the position that start implies, an empty buffer is returned.

Return value

A new ArrayBuffer containing the extracted elements. It is not resizable, even if the original was.

Examples

Copying an ArrayBuffer

js

const buf1 = new ArrayBuffer(8);
const buf2 = buf1.slice(0);

Specifications

Specification
ECMAScript® 2027 Language Specification
# sec-arraybuffer.prototype.slice

Browser compatibility

See also

Help improve MDN

Learn how to contribute

This page was last modified on by MDN contributors.