--- 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)
typedArray
index
typedArray
中要进行按位或运算的索引。value
typedArray[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")}}