Spec-Zone.ru › JavaScript

ArrayBuffer.prototype.slice()

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Метод slice() экземпляра 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

Синтаксис

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

Параметры

start Необязательный
Индекс, с которого начинается извлечение (начиная с 0), преобразованный в целое число.
  • Отрицательный индекс отсчитывается с конца буфера — если -buffer.length <= start < 0, используется start + buffer.length.
  • Если start < -buffer.length или start опущены, используется 0.
  • Если start >= buffer.length, возвращается пустой буфер.
end Необязательный
Индекс, по которому заканчивается извлечение (начиная с 0), преобразованный в целое число. slice() извлекает до end, не включая его.
  • Отрицательный индекс отсчитывается с конца буфера — если -buffer.length <= end < 0, используется end + buffer.length.
  • Если end < -buffer.length, используется 0.
  • Если end >= buffer.length или end опущены, undefined, используется buffer.length, извлекаются все элементы до конца.
  • Если end подразумевает позицию перед или на позиции, которую подразумевает start, возвращается пустой буфер.

Возвращаемое значение

Новый ArrayBuffer, содержащий извлеченные элементы. Он не является изменяемым по размеру, даже если оригинал был.

Примеры

Копирование ArrayBuffer

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

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

Спецификация
Спецификация языка ECMAScript® 2027
# sec-arraybuffer.prototype.slice

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

Настольные компьютеры Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android WebView на iOS Bun Deno Node.js
slice
17
12
12Нестандартный метод ArrayBuffer.slice() был удален в Firefox 53 (но стандартизированная версия ArrayBuffer.prototype.slice() сохранена.
12.1
5.1
18
14Нестандартный метод ArrayBuffer.slice() был удален в Firefox для Android 53 (но стандартизированная версия ArrayBuffer.prototype.slice() сохранена.
12.1
6
1.0
4.4
6
1.0.0
1.0
0.12.0

См. также

  • ArrayBuffer
  • SharedArrayBuffer.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/ArrayBuffer/slice

Spec-Zone.ru

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