SharedArrayBuffer.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 December 2021.
Phương thức slice() của các instance SharedArrayBuffer trả về một SharedArrayBuffer mới có nội dung là bản sao của các byte của SharedArrayBuffer 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.
Cú pháp
slice()
slice(start)
slice(start, end)
Tham số
startOptional-
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.lengthhoặcstartbị bỏ qua, thì0được dùng. - Nếu
start >= buffer.length, một buffer rỗng được trả về.
- Chỉ số âm đếm ngược từ cuối buffer — nếu
endOptional-
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ồmend.- 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.lengthhoặcendbị bỏ qua hoặcundefined,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
endngụ ý một vị trí trước hoặc tại vị trí màstartngụ ý, một buffer rỗng được trả về.
- Chỉ số âm đếm ngược từ cuối buffer — nếu
Giá trị trả về
Một SharedArrayBuffer mới chứa các phần tử được trích xuất.
Ví dụ
Lưu ý rằng các ví dụ này không thể chạy trực tiếp từ console hoặc một trang web tùy ý, vì SharedArrayBuffer không được định nghĩa trừ khi các yêu cầu bảo mật của nó được đáp ứng.
Sử dụng slice()
// Create a SharedArrayBuffer with a size in bytes
const buffer = new SharedArrayBuffer(16);
const int32View = new Int32Array(buffer);
int32View[1] = 42;
// Produces Int32Array [0, 42, 0, 0]
const sliced = new Int32Array(buffer.slice(4, 12));
console.log(sliced); // Int32Array [42, 0]
Sử dụng các giá trị start và end khác nhau
const sab = new SharedArrayBuffer(1024);
sab.slice(); // SharedArrayBuffer { byteLength: 1024 }
sab.slice(2); // SharedArrayBuffer { byteLength: 1022 }
sab.slice(-2); // SharedArrayBuffer { byteLength: 2 }
sab.slice(0, 1); // SharedArrayBuffer { byteLength: 1 }
Đặc tả kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-sharedarraybuffer.prototype.slice> |