Spec-Zone.ru › JavaScript

Atomics.and()

Baseline Широко доступно

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

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

Синтаксис

Atomics.and(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 0
1 0 0
1 1 1

Например, побитовое И 5 & 1 дает результат 0001, что в десятичной системе равно 1.

5  0101
1  0001
   ----
1  0001

Примеры

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

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

// 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) AND 10 (1010) = 2 (0010)
console.log(Atomics.and(ta, 0, 10)); // 7, the old value
console.log(Atomics.load(ta, 0)); // 2, the new/current value

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

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

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

Desktop Mobile Server
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
and
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.or()
  • 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/and

Spec-Zone.ru

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