Atomics.or()

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

¥The Atomics.or() static method computes a bitwise OR with a given value at a given position in the array, and returns the old value at that position. This atomic operation guarantees that no other write happens until the modified value is written back.

Try it

语法

¥Syntax

js
Atomics.or(typedArray, index, value)

参数

¥Parameters

typedArray

整数类型数组。Int8ArrayUint8ArrayInt16ArrayUint16ArrayInt32ArrayUint32ArrayBigInt64ArrayBigUint64Array 之一。

index

typedArray 中计算按位 OR 的位置。

value

用于计算按位或的数字。

返回值

¥Return value

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

¥The old value at the given position (typedArray[index]).

例外情况

¥Exceptions

TypeError

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

RangeError

如果 indextypedArray 中出界,则抛出该球。

描述

¥Description

如果 ab 为 1,则按位 OR 运算得到 1。OR 运算的真值表为:

¥The bitwise OR operation yields 1, if either a or b are 1. The truth table for the OR operation is:

a b a | b
0 0 0
0 1 1
1 0 1
1 1 1

例如,5 | 1 的按位或结果为 0101,即十进制的 5。

¥For example, a bitwise OR of 5 | 1 results in 0101 which is 5 in decimal.

5  0101
1  0001
   ----
5  0101

示例

¥Examples

使用或

¥Using or

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

规范

Specification
ECMAScript Language Specification
# sec-atomics.or

¥Specifications

浏览器兼容性

BCD tables only load in the browser

¥Browser compatibility

也可以看看