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 einen neuen ArrayBuffer zurück, dessen Inhalt eine Kopie der Bytes dieses ArrayBuffer von start, einschließlich, bis zu end, ausschließlich, ist. Wenn entweder start oder end negativ ist, bezieht es sich auf einen Index vom Ende des Arrays, 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

Nullbasierter Index, bei dem die Extraktion beginnt, umgewandelt in eine Ganzzahl.

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

Nullbasierter Index, bei dem die Extraktion endet, umgewandelt in eine Ganzzahl. slice() extrahiert bis, aber nicht einschließlich end.

  • Ein negativer Index zählt zurück vom Ende des Buffers — wenn -buffer.length <= end < 0, wird end + buffer.length verwendet.
  • Wenn end < -buffer.length, wird 0 verwendet.
  • Wenn end >= buffer.length oder end weggelassen oder undefined ist, wird buffer.length verwendet, was dazu führt, dass alle Elemente bis zum Ende extrahiert werden.
  • Wenn end eine Position vor oder an der Position, die start impliziert, angibt, wird ein leerer Buffer zurückgegeben.

Rückgabewert

Ein neuer ArrayBuffer, der die extrahierten Elemente enthält. Er ist nicht vergrößerbar, auch wenn der ursprüngliche es 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

Siehe auch