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.

Phương thức slice() của các instance ArrayBuffer trả về một ArrayBuffer mới có nội dung là bản sao của các byte của ArrayBuffer này từ start, bao gồm, đến end, không bao gồm. Nếu start hoặc end là âm, nó tham chiếu đến chỉ số từ cuối mảng, thay vì từ đầu.

Try it

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

Cú pháp

js
slice()
slice(start)
slice(start, end)

Tham số

start Optional

Chỉ số dựa trên 0 để bắt đầu trích xuất, được chuyển đổi thành số nguyên.

  • Chỉ số âm đếm ngược từ cuối buffer — nếu -buffer.length <= start < 0, thì start + buffer.length được dùng.
  • Nếu start < -buffer.length hoặc start bị bỏ qua, thì 0 được dùng.
  • Nếu start >= buffer.length, một buffer rỗng được trả về.
end Optional

Chỉ số dựa trên 0 để kết thúc trích xuất, được chuyển đổi thành số nguyên. slice() trích xuất đến nhưng không bao gồm end.

  • Chỉ số âm đếm ngược từ cuối buffer — nếu -buffer.length <= end < 0, thì end + buffer.length được dùng.
  • Nếu end < -buffer.length, 0 được dùng.
  • Nếu end >= buffer.length hoặc end bị bỏ qua là undefined, buffer.length được dùng, khiến tất cả các phần tử đến cuối được trích xuất.
  • Nếu end ngụ ý một vị trí trước hoặc tại vị trí mà start ngụ ý, một buffer rỗng được trả về.

Giá trị trả về

Một ArrayBuffer mới chứa các phần tử được trích xuất. Nó không thể thay đổi kích thước, ngay cả khi bản gốc có thể.

Ví dụ

Sao chép một ArrayBuffer

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

Đặc tả kỹ thuật

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

Tương thích trình duyệt

Xem thêm