Atomics.sub()
BaselineWidely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since December 2021.
TheAtomics.sub()
static method subtracts a given valueat a given position in the array and returns the old value at that position. This atomicoperation guarantees that no other write happens until the modified value is writtenback.
Try it
// Create a SharedArrayBuffer with a size in bytesconst buffer = new SharedArrayBuffer(16);const uint8 = new Uint8Array(buffer);uint8[0] = 7;// 7 - 2 = 5console.log(Atomics.sub(uint8, 0, 2));// Expected output: 7console.log(Atomics.load(uint8, 0));// Expected output: 5
Syntax
js
Atomics.sub(typedArray, index, value)
Parameters
typedArray
An integer typed array. One of
Int8Array
,Uint8Array
,Int16Array
,Uint16Array
,Int32Array
,Uint32Array
,BigInt64Array
, orBigUint64Array
.index
The position in the
typedArray
to subtract avalue
from.value
The number to subtract.
Return value
The old value at the given position(typedArray[index]
).
Exceptions
TypeError
Thrown if
typedArray
is not one of the allowed integer types.RangeError
Thrown if
index
is out of bounds in thetypedArray
.
Examples
Using sub
js
const sab = new SharedArrayBuffer(1024);const ta = new Uint8Array(sab);ta[0] = 48;Atomics.sub(ta, 0, 12); // returns 48, the old valueAtomics.load(ta, 0); // 36
Specifications
Specification |
---|
ECMAScript® 2026 Language Specification # sec-atomics.sub |