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 Inhalte eine Kopie der Bytes dieses ArrayBuffer
von start
(einschließlich) bis end
(ausschließlich) sind. Wenn 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-
Der nullbasierte Index, bei dem die Extraktion beginnt, in eine ganze Zahl konvertiert.
- Ein negativer Index zählt vom Ende des Puffers zurück — 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 Puffer zurückgegeben.
- Ein negativer Index zählt vom Ende des Puffers zurück — wenn
end
Optional-
Der nullbasierte Index, bei dem die Extraktion endet, in eine ganze Zahl konvertiert.
slice()
extrahiert bis, aber nicht einschließlichend
.- Ein negativer Index zählt vom Ende des Puffers zurück — wenn
-buffer.length <= end < 0
, wirdend + buffer.length
verwendet. - Wenn
end < -buffer.length
, wird0
verwendet. - Wenn
end >= buffer.length
oderend
weggelassen wird, wirdbuffer.length
verwendet, was bewirkt, dass alle Elemente bis zum Ende extrahiert werden. - Wenn
end
eine Position vor oder an der vonstart
implizierten Position angibt, wird ein leerer Puffer zurückgegeben.
- Ein negativer Index zählt vom Ende des Puffers zurück — wenn
Rückgabewert
Ein neues ArrayBuffer
, das die extrahierten Elemente enthält. Es ist nicht größenveränderbar, selbst wenn das Original 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 |
Browser-Kompatibilität
BCD tables only load in the browser