--- title: Atomics.or() slug: Web/JavaScript/Reference/Global_Objects/Atomics/or tags: - Atomics - JavaScript - Method - Shared Memory translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/or ---
静态方法 Atomics.or() 用数组中指定位置的值进行一次按位或运算,并返回未计算时数组中指定位置处的值。这个atomic操作保证了在修改后的值被写回之前没有其它的写入操作发生。
Atomics.or(typedArray, index, value)
typedArrayindextypedArray 中要进行按位或运算的索引。valuetypedArray[index] 处运算前的值。
typedArray 不是一个可用的int类型,则抛出一个 {{jsxref("TypeError")}} 异常。typedArray 不是一个共享的数组类型,则抛出一个 {{jsxref("TypeError")}} 异常。index 索引超出了 typedArray 的大小,则抛出一个 {{jsxref("RangeError")}} 异常。当 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
var sab = new SharedArrayBuffer(1024); var ta = new Uint8Array(sab); ta[0] = 2; Atomics.or(ta, 0, 1); // returns 2, the old value Atomics.load(ta, 0); // 3
| 规范 | 状态 | 注释 |
|---|---|---|
| {{SpecName('ESDraft', '#sec-atomics.or', 'Atomics.or')}} | {{Spec2('ESDraft')}} | Initial definition in ES2017. |
{{Compat("javascript.builtins.Atomics.or")}}