Spec-Zone.ru › JavaScript

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 }

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-sharedarraybuffer.prototype.slice

Совместимость с браузерами

Настольные компьютеры Мобильные устройства Сервер
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

См. также

  • SharedArrayBuffer
  • ArrayBuffer.prototype.slice()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API