SharedArrayBuffer.prototype.slice()
Базовый уровень Широко доступен
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с декабря 2021 года.
Метод slice() экземпляров SharedArrayBuffer возвращает новый SharedArrayBuffer, содержимое которого является копией байтов этого SharedArrayBuffer из start (включительно) до end (исключая). Если start или end отрицательные, они ссылаются на индекс с конца массива, а не с начала.
Синтаксис
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.- Отрицательный индекс отсчитывается с конца буфера — если
-buffer.length <= end < 0, используетсяend + buffer.length. - Если
end < -buffer.length, используется0. - Если
end >= buffer.lengthилиendопущены илиundefined, используетсяbuffer.length, что приводит к извлечению всех элементов до конца. - Если
endподразумевает позицию до или на позиции, подразумеваемойstart, возвращается пустой буфер.
- Отрицательный индекс отсчитывается с конца буфера — если
Возвращаемое значение
Новый SharedArrayBuffer, содержащий извлеченные элементы.
Примеры
Обратите внимание, что эти примеры нельзя запустить напрямую из консоли или произвольной веб-страницы, поскольку SharedArrayBuffer не определен, если не выполнены его требования безопасности.
Использование 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]
Использование различных значений start и end
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 }
Спецификации
Совместимость с браузерами
| Настольные компьютеры | Мобильные устройства | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
slice |
68 |
79 |
79 |
55 |
15.2 |
89 |
79 |
63 |
15.2 |
15.0 |
Нет |
15.2 |
1.0.0 |
1.0 |
8.10.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer/slice