Spec-Zone.ru › JavaScript

Atomics.or()

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

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

Статический метод Atomics.or() вычисляет побитовое ИЛИ с заданным значением в заданной позиции в массиве и возвращает старое значение в этой позиции. Эта атомарная операция гарантирует, что никакая другая запись не произойдет до тех пор, пока измененное значение не будет записано обратно.

Синтаксис

Atomics.or(typedArray, index, value)

Параметры

typedArray
Типизированный целочисленный массив. Один из Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, BigInt64Array, или BigUint64Array.
index
Позиция в typedArray, для которой вычисляется побитовое ИЛИ.
value
Число, с которым вычисляется побитовое ИЛИ.

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

Старое значение в заданной позиции (typedArray[index]).

Исключения

TypeError
Выбрасывается, если typedArray не является одним из разрешенных целочисленных типов.
RangeError
Выбрасывается, если index находится за пределами диапазона в typedArray.

Описание

Операция побитового ИЛИ возвращает 1, если a или b равно 1. Таблица истинности для операции ИЛИ:

a b a \| b
0 0 0
0 1 1
1 0 1
1 1 1

Например, побитовое ИЛИ 5 | 1 дает 0101, что в десятичном виде равно 5.

5  0101
1  0001
   ----
5  0101

Примеры

Обратите внимание, что эти примеры нельзя запустить непосредственно из консоли или произвольной веб-страницы, поскольку SharedArrayBuffer не определен, если не соблюдены его требования безопасности.

Использование Atomics.or()

// Create a SharedArrayBuffer with a size in bytes
const sab = new SharedArrayBuffer(1024);
// Create a view and set the value of the 0 index
const ta = new Uint8Array(sab);
ta[0] = 7;

// 7 (0111) OR 10 (1010) = 15 (1111)
console.log(Atomics.or(ta, 0, 10)); // 7, the old value
console.log(Atomics.load(ta, 0)); // 15, the new/current value

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

Спецификация
ECMAScript® 2027 Language Specification
# sec-atomics.or

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

Десктопные Мобильные Серверные
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
or
68
79
78
55
15.2
89
79
63
15.2
15.0
89
15.2
1.0.0
1.0
8.10.0

Смотрите также

  • Atomics
  • Atomics.and()
  • Atomics.xor()

© 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/Atomics/or

Spec-Zone.ru

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