Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Atomics.xor()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since Dezember 2021.
Die statische MethodeAtomics.xor() berechnet einen bitweisen XOR mit einem gegebenen Wert an einer bestimmten Position im Array und gibt den alten Wert an dieser Position zurück. Diese atomare Operation garantiert, dass keine anderen Schreibvorgänge erfolgen, bis der modifizierte Wert zurückgeschrieben wird.
In diesem Artikel
Probieren Sie es aus
// Create a SharedArrayBuffer with a size in bytesconst buffer = new SharedArrayBuffer(16);const uint8 = new Uint8Array(buffer);uint8[0] = 7;// 7 (0111) XOR 2 (0010) = 5 (0101)console.log(Atomics.xor(uint8, 0, 2));// Expected output: 7console.log(Atomics.load(uint8, 0));// Expected output: 5Syntax
Atomics.xor(typedArray, index, value)Parameter
typedArrayEin Ganzzahlen-Typ-Array. Eines von
Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,BigInt64ArrayoderBigUint64Array.indexDie Position im
typedArray, an der der bitweise XOR berechnet wird.valueDie Zahl, mit der der bitweise XOR berechnet wird.
Rückgabewert
Der alte Wert an der gegebenen Position (typedArray[index]).
Ausnahmen
TypeErrorWird ausgelöst, wenn
typedArraynicht einer der erlaubten Ganzzahltypen ist.RangeErrorWird ausgelöst, wenn
indexaußerhalb der Grenzen destypedArrayist.
Beschreibung
Die bitweise XOR-Operation ergibt 1, wenna undb unterschiedlich sind.Die Wahrheitstabelle für die XOR-Operation ist:
a | b | a ^ b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Ein Beispiel: Ein bitweises XOR von5 ^ 1 ergibt0100, was 4 im Dezimalsystem ist.
5 01011 0001 ----4 0100
Beispiele
>Verwendung von xor
const sab = new SharedArrayBuffer(1024);const ta = new Uint8Array(sab);ta[0] = 5;Atomics.xor(ta, 0, 1); // returns 5, the old valueAtomics.load(ta, 0); // 4Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-atomics.xor> |