📜  JavaScript 中的 Atomics.xor()

📅  最后修改于: 2022-05-13 01:58:09.847000             🧑  作者: Mango

JavaScript 中的 Atomics.xor()

什么是原子?
Atomics 是 JavaScript 中的一个对象,它提供要作为静态方法执行的原子操作。就像 JavaScript 中的 Math 对象一样,Atomics 的所有属性和方法也是静态的。
原子与 SharedArrayBuffer(通用固定长度二进制数据缓冲区)对象一起使用。原子不是像其他全局对象那样的构造函数。原子不能与 new运算符一起使用,也不能作为函数调用。
JavaScript 中的原子操作
当有共享内存时,多个线程可以在内存中读取和写入相同的数据。为确保准确写入和读取预测值,除非当前操作完成,否则无法开始另一操作。原子操作也不能中断。
Atomics.and() 方法
在原子操作中,有一种方法Atomics.xor()用于在数组中的给定位置计算给定值的按位异或运算。该位置的旧值由 Atomics.xor()函数返回。在修改的值被写回之前,不会发生其他写操作。
句法:

Atomics.xor(typedArray, index, value)

使用的参数:

  1. typedarray :它是您要修改的共享整数类型数组。
  2. index :它是 typedArray 中要计算按位异或的位置。
  3. value :这是您要计算按位异或的数字。

返回值:
Atomics.xor() 返回给定位置(typedArray[index])的旧值。
下面提供了上述函数的示例。
例子:

Input : arr[0] = 9;
        Atomics.xor(arr, 0, 3);
Output : 9

Input : arr[0] = 3; 
        Atomics.xor(arr, 0, 2);
Output : 3

下面提供了上述函数的代码。
代码 1:

html


html


输出:

9
10

代码 2:

html


输出:

3
1

例外:

  • 如果 typedArray 不是允许的整数类型之一,则引发 TypeError。
  • 如果 typedArray 不是共享类型数组类型,则抛出 TypeError。
  • 如果索引超出 typedArray 的范围,则抛出 RangeError。

支持的浏览器:

  • 谷歌浏览器
  • 微软边缘
  • 火狐