ArrayBuffer.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 July 2015.

Die slice()-Methode von ArrayBuffer-Instanzen gibt ein neues ArrayBuffer zurück, dessen Inhalt eine Kopie der Bytes dieses ArrayBuffer von start (einschließlich) bis end (ausschließlich) ist. Wenn start oder end negativ sind, beziehen sie sich auf einen Index vom Ende des Arrays aus, anstatt vom Anfang.

Probieren Sie es aus

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

Parameter

start Optional

Der nullbasierte Index, an dem die Extraktion beginnt, konvertiert in eine ganze Zahl.

  • Ein negativer Index zählt rückwärts vom Ende des Buffers — wenn -buffer.length <= start < 0, wird start + buffer.length verwendet.
  • Wenn start < -buffer.length oder start ausgelassen wird, wird 0 verwendet.
  • Wenn start >= buffer.length ist, wird ein leerer Buffer zurückgegeben.
end Optional

Der nullbasierte Index, an dem die Extraktion endet, konvertiert in eine ganze Zahl. slice() extrahiert bis, aber nicht einschließlich end.

  • Ein negativer Index zählt rückwärts vom Ende des Buffers — wenn -buffer.length <= end < 0, wird end + buffer.length verwendet.
  • Wenn end < -buffer.length ist, wird 0 verwendet.
  • Wenn end >= buffer.length oder end ausgelassen wird, wird buffer.length verwendet, wodurch alle Elemente bis zum Ende extrahiert werden.
  • Wenn end eine Position impliziert, die vor oder an der Position liegt, die start impliziert, wird ein leerer Buffer zurückgegeben.

Rückgabewert

Ein neues ArrayBuffer, das die extrahierten Elemente enthält. Es ist nicht veränderbar, selbst wenn das Original veränderbar war.

Beispiele

Kopieren eines ArrayBuffer

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

Spezifikationen

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

Browser-Kompatibilität

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
slice

Legend

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

Full support
Full support
See implementation notes.

Siehe auch