ArrayBuffer.prototype.slice()
slice() 方法用於 ArrayBuffer 例項,它會返回一個新的 ArrayBuffer,該 ArrayBuffer 的內容是原始 ArrayBuffer 從 start(包含)到 end(不包含)的位元組的副本。如果 start 或 end 為負數,則表示從陣列末尾開始的索引,而不是從開頭開始。
試一試
// 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
語法
js
slice()
slice(start)
slice(start, end)
引數
start可選-
用於開始提取的零基索引,轉換為整數。
- 負數索引從緩衝區的末尾開始計數 — 如果
-buffer.length <= start < 0,則使用start + buffer.length。 - 如果
start < -buffer.length或省略了start,則使用0。 - 如果
start >= buffer.length,則返回一個空緩衝區。
- 負數索引從緩衝區的末尾開始計數 — 如果
end可選-
用於結束提取的零基索引,轉換為整數。
slice()會提取到end之前(不包含end)。- 負數索引從緩衝區的末尾開始計數 — 如果
-buffer.length <= end < 0,則使用end + buffer.length。 - 如果
end < -buffer.length,則使用0。 - 如果
end >= buffer.length或省略了end(為undefined),則使用buffer.length,這將提取直到緩衝區末尾的所有元素。 - 如果
end表示的位置在start表示的位置之前或等於該位置,則返回一個空緩衝區。
- 負數索引從緩衝區的末尾開始計數 — 如果
返回值
包含提取元素的新 ArrayBuffer。即使原始緩衝區是可調整大小的,它也不是 可調整大小 的。
示例
複製 ArrayBuffer
js
const buf1 = new ArrayBuffer(8);
const buf2 = buf1.slice(0);
規範
| 規範 |
|---|
| ECMAScript® 2026 語言規範 # sec-arraybuffer.prototype.slice |
瀏覽器相容性
載入中…