Atomics.xor() - JavaScript 编辑
Atomics
.xor()
静态方法会在数组中给定位置进行一次按位异或操作,并返回该位置的旧值。这个原子操作保证在修改后的值被写回之前不会发生其他写操作。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.
语法
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。异或操作的真值表如下:
a | b | a ^ b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
例如,按位异或 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
规范
Specification | Status | Comment |
---|---|---|
ECMAScript (ECMA-262) Atomics.xor | Living Standard | Initial 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论