JS Atomics.or()

🌙
手机阅读
本文目录结构

静态方法 **Atomics**.or() 用数组中指定位置的值进行一次按位或运算,并返回未计算时数组中指定位置处的值。这个atomic操作保证了在修改后的值被写回之前没有其它的写入操作发生。

The source for this interactive example is stored in a GitHub repository. If you’d like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

Syntax

Atomics.or(typedArray, index, value)

参数

typedArray

一个共享的int数组,类型为 [Int8Array](/api/js-es/ob-typed-array/int8-array.html"Int8Array 类型数组表示二进制补码8位有符号整数的数组。内容初始化为0。 一旦建立,你可以使用对象的方法引用数组中的元素,或使用标准数组索引语法( 即,使用括号注释)。")、Uint8ArrayInt16ArrayUint16ArrayInt32ArrayUint32Array

index

typedArray 中要进行按位或运算的索引。

value

要进行按位或运算的数。

返回值

typedArray[index] 处运算前的值。

异常

  • 若 typedArray 不是一个可用的int类型,则抛出一个 TypeError 异常。
  • 若 typedArray 不是一个共享的数组类型,则抛出一个 TypeError 异常。
  • 若 index 索引超出了 typedArray 的大小,则抛出一个 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

规范

规范 状态 注释
ECMAScript Latest Draft (ECMA-262)Atomics.or Draft Initial definition in ES2017.

相关文档

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了