Atomics.or()
Atomics.or()
静态方法计算数组中给定位置处给定值的按位或,并返回该位置处的旧值。此原子操作保证在修改后的值写回之前不会发生其他写入。
试一试
语法
js
Atomics.or(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。或运算的真值表为
a |
b |
a | b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
例如,5 | 1
的按位或结果为 0101
,在十进制中为 5。
5 0101 1 0001 ---- 5 0101
示例
使用或
js
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 2;
Atomics.or(ta, 0, 1); // returns 2, the old value
Atomics.load(ta, 0); // 3
规范
规范 |
---|
ECMAScript 语言规范 # sec-atomics.or |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。