Atomics.and()
**Atomics.and()
** 静态方法计算数组中给定位置处给定值的按位与运算,并返回该位置处的旧值。此原子操作保证在修改后的值写回之前不会发生其他写入操作。
试一试
语法
js
Atomics.and(typedArray, index, value)
参数
typedArray
-
一个整数类型数组。其中之一为
Int8Array
、Uint8Array
、Int16Array
、Uint16Array
、Int32Array
、Uint32Array
、BigInt64Array
或BigUint64Array
。 index
-
在
typedArray
中计算按位与运算的位置。 value
-
要与其计算按位与运算的数字。
返回值
给定位置处的旧值 (typedArray[index]
)。
异常
TypeError
-
如果
typedArray
不是允许的整数类型之一,则抛出。 RangeError
-
如果
index
超出typedArray
的范围,则抛出。
描述
按位与运算仅在a
和b
都为 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 的浏览器中加载。