Spec-Zone.ru › JavaScript

Atomics.xor()

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

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

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

Синтаксис

Atomics.xor(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 различны. Таблица истинности для операции XOR:

a b a ^ b
0 0 0
0 1 1
1 0 1
1 1 0

Например, побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ 5 ^ 1 приводит к 0100, что в десятичной системе равно 4.

5  0101
1  0001
   ----
4  0100

Примеры

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

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

// 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) XOR 2 (0010) = 5 (0101)
console.log(Atomics.xor(ta, 0, 2)); // 7, the old value
console.log(Atomics.load(ta, 0)); // 5, the new/current value

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

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

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

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
xor
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.or()

© 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/xor

Spec-Zone.ru

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