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
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
, wirdstart + buffer.length
verwendet. - Wenn
start < -buffer.length
oderstart
weggelassen wird, wird0
verwendet. - Wenn
start >= buffer.length
, wird ein leerer Buffer zurückgegeben.
- Ein negativer Index zählt zurück vom Ende des Buffers — wenn
end
Optional-
Nullbasierter Index, bei dem die Extraktion endet, umgewandelt in eine Ganzzahl.
slice()
extrahiert bis, aber nicht einschließlichend
.- Ein negativer Index zählt zurück vom Ende des Buffers — wenn
-buffer.length <= end < 0
, wirdend + buffer.length
verwendet. - Wenn
end < -buffer.length
, wird0
verwendet. - Wenn
end >= buffer.length
oderend
weggelassen oderundefined
ist, wirdbuffer.length
verwendet, was dazu führt, dass alle Elemente bis zum Ende extrahiert werden. - Wenn
end
eine Position vor oder an der Position, diestart
impliziert, angibt, wird ein leerer Buffer zurückgegeben.
- Ein negativer Index zählt zurück vom Ende des Buffers — wenn
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
const buf1 = new ArrayBuffer(8);
const buf2 = buf1.slice(0);
Spezifikationen
Specification |
---|
ECMAScript® 2025 Language Specification # sec-arraybuffer.prototype.slice |