Atomics.xor()

Atomics.xor() 静态方法使用数组中给定位置处的给定值计算按位异或,并返回该位置处的旧值。此原子操作保证在修改的值被写回之前不会发生其他写入。

¥The Atomics.xor() static method computes a bitwise XOR with a given value at a given position in the array, and returns the old value at that position. This atomic operation guarantees that no other write happens until the modified value is written back.

Try it

语法

¥Syntax

js
Atomics.xor(typedArray, index, value)

参数

¥Parameters

typedArray

整数类型数组。Int8ArrayUint8ArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayBigInt64ArrayBigUint64Array 之一。

index

typedArray 中计算按位异或的位置。

value

用于计算按位异或的数字。

返回值

¥Return value

给定位置 (typedArray[index]) 的旧值。

¥The old value at the given position (typedArray[index]).

例外情况

¥Exceptions

TypeError

如果 typedArray 不是允许的整数类型之一,则抛出该错误。

RangeError

如果 indextypedArray 中出界,则抛出该球。

描述

¥Description

如果 ab 不同,则按位 XOR 运算得到 1。XOR 运算的真值表为:

¥The bitwise XOR operation yields 1, if a and b are different. The truth table for the XOR operation is:

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

例如,5 ^ 1 的按位异或结果为 0100,十进制为 4。

¥For example, a bitwise XOR of 5 ^ 1 results in 0100 which is 4 in decimal.

5  0101
1  0001
   ----
4  0100

示例

¥Examples

使用异或

¥Using xor

js
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 5;

Atomics.xor(ta, 0, 1); // returns 5, the old value
Atomics.load(ta, 0); // 4

规范

Specification
ECMAScript Language Specification
# sec-atomics.xor

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看