Atomics.and()

基线 广泛可用

此功能已得到很好的建立,并且可以在许多设备和浏览器版本中使用。它已在浏览器中可用,自 2021 年 12 月.

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

试一试

语法

js
Atomics.and(typedArray, index, value)

参数

typedArray

一个整数类型数组。其中之一为 Int8ArrayUint8ArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayBigInt64ArrayBigUint64Array

index

typedArray中计算按位与运算的位置。

value

要与其计算按位与运算的数字。

返回值

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

异常

TypeError

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

RangeError

如果index超出typedArray的范围,则抛出。

描述

按位与运算仅在ab都为 1 时才产生 1。AND 运算的真值表为

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

示例

使用 and()

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

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

规范

规范
ECMAScript 语言规范
# sec-atomics.and

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅