Atomics.xor() Method: Among the Atomic Operations, there is a method Atomics.xor() that is used to compute a bitwise XOR operation with a given value at a given position in an array. The old value at that position is returned by Atomics.xor() function. No other write operation can happen until the modified value is written back.
Syntax:
Atomics.xor(typedArray, index, value)
Parameters:
- typedarray: It is the shared integer typed array you want to modify.
- index: It is the position in the typedArray where you want to compute bitwise XOR.
- value: It is the number you want to compute the bitwise XOR with.
Return Value: Atomics.xor() returns the old value at the given position (typedArray[index]).
Examples of the above function are provided below.
Examples:
Input : arr[0] = 9; Atomics.xor(arr, 0, 3); Output : 9 Input : arr[0] = 3; Atomics.xor(arr, 0, 2); Output : 3
Examples of the above function are provided below.
Example 1:
Javascript
//creating a SharedArrayBuffer let buf = new SharedArrayBuffer(25); let arr = new Uint8Array(buf); //Initialising element at zeroth position of array with 9 arr[0] = 9; //9(1001) OR 3(0011) = 10(1010) //Displaying the return value of the Atomics.xor() method console.log(Atomics.xor(arr, 0, 3)); //Displaying the updated SharedArrayBuffer console.log(Atomics.load(arr, 0)); |
Output:
9 10
Example 2:
Javascript
//creating a SharedArrayBuffer let buf = new SharedArrayBuffer(25); let arr = new Uint8Array(buf); //Initialising element at zeroth position of array with 3 arr[0] = 3; //3 (0011) AND 2 (0010) = 3 (0001) //Displaying the return value of the Atomics.xor() method console.log(Atomics.xor(arr, 0, 2)); //Displaying the updated SharedArrayBuffer console.log(Atomics.load(arr, 0)); |
Output:
3 1
Exceptions :
- Throws a TypeError, if typedArray is not one of the allowed integer types.
- Throws a TypeError, if typedArray is not a shared typed array type.
- Throws a RangeError, if the index is out of bounds in the typedArray.
Supported Browser:
- Google Chrome
- Microsoft Edge
- Firefox
- Opera
- Safari
We have a complete list of Javascript Atomic methods, to check those please go through this JavaScript Atomics Complete Reference article.
We have a Cheat Sheet on Javascript where we covered all the important topics of Javascript to check those please go through Javascript Cheat Sheet-A Basic guide to JavaScript.