静的な Atomics
.compareExchange()
メソッドは、指定された値を配列内の指定した位置に格納し、その値を返します。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
構文
Atomics.compareExchange(typedArray, index, value)
引数
typedArray
- 共有整数型付き配列です。
Int8Array
,Uint8Array
,Int16Array
,Uint16Array
,Int32Array
,Uint32Array
の何れかです。 index
typedArray
でvalue
と交換する位置です。expectedValue
- 等価性をチェックする値です。
replacementValue
- 交換する数値です。
返値
指定された位置にあった古い値です (typedArray[index]
)。
例外
typedArray
が許可された整数型の何れでもない場合、TypeError
が発生します。typedArray
が共有型付き配列型ではない場合、TypeError
が発生します。index
がtypedArray
の範囲を超えている場合、RangeError
が発生します。
例
compareExchange() の使用
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 7;
Atomics.compareExchange(ta, 0, 7, 12); // returns 7, the old value
Atomics.load(ta, 0); // 12
仕様書
ブラウザーの互換性
BCD tables only load in the browser
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。