From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../global_objects/atomics/xor/index.html | 126 +++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 files/zh-cn/web/javascript/reference/global_objects/atomics/xor/index.html (limited to 'files/zh-cn/web/javascript/reference/global_objects/atomics/xor') diff --git a/files/zh-cn/web/javascript/reference/global_objects/atomics/xor/index.html b/files/zh-cn/web/javascript/reference/global_objects/atomics/xor/index.html new file mode 100644 index 0000000000..83b0bdfb46 --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/atomics/xor/index.html @@ -0,0 +1,126 @@ +--- +title: Atomics.xor() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/xor +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/xor +--- +
{{JSRef}}
+ +
Atomics.xor() 静态方法会在数组中给定位置进行一次按位异或操作,并返回该位置的旧值。这个原子操作保证在修改后的值被写回之前不会发生其他写操作。
+ +
+ +
{{EmbedInteractiveExample("pages/js/atomics-xor.html")}}
+ + + +

语法

+ +
Atomics.xor(typedArray, index, value)
+
+ +

参数

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

返回值

+ +

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

+ +

异常

+ + + +

描述

+ +

如果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
{{SpecName('ESDraft', '#sec-atomics.xor', 'Atomics.xor')}}{{Spec2('ESDraft')}}Initial definition in ES2017.
+ +

浏览器支持

+ + + +

{{Compat("javascript.builtins.Atomics.xor")}}

+ +

相关

+ + -- cgit v1.2.3-54-g00ecf