Atomics.xor() - JavaScript 编辑

Atomics.xor() 静态方法会在数组中给定位置进行一次按位异或操作,并返回该位置的旧值。这个原子操作保证在修改后的值被写回之前不会发生其他写操作。

语法

Atomics.xor(typedArray, index, value)

参数

typedArray
一个共享的整型 typed array。例如 Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, 或者 Uint32Array.
index
typedArray 中需要进行按位异或的索引位置。
value
要进行按位异或的数字。

返回值

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

异常

  • 假如 typedArray 不是允许的整型之一,则抛出 TypeError
  • 假如 typedArray 不是一个共享的整型 typed array,则抛出 TypeError
  • 如果 index 超出了 typedArray 的边界,则抛出 RangeError

描述

如果a和b不同,则按位异或操作产生1。异或操作的真值表如下:

aba ^ b
000
011
101
110

例如,按位异或 5 & 1 将返回 0100,而 0100 是十进制为 4 。

5  0101
1  0001
   ----
4  0100

例子

const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 5;

Atomics.xor(ta, 0, 1); // returns 5, the old value
Atomics.load(ta, 0);  // 4

规范

SpecificationStatusComment
ECMAScript (ECMA-262)
Atomics.xor
Living StandardInitial definition in ES2017.

浏览器支持

BCD tables only load in the browser

The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

相关

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:71 次

字数:5223

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文