Atomics.compareExchange()
Atomics.compareExchange() 정적 메서드는 주어진 예상 값이 이전 값과 같으면 배열의 지정된 위치에서
지정된 대체 값을 교환합니다. 예상 값이 이전 값과 같을 경우, 배열의 지정된 위치에서 지정된 대체 값을 교환합니다.
이 메서드는 해당 위치의 이전 값이 해당 위치의 이전 값을 반환합니다. 이 아토믹 연산은 수정된 값이 반환될 때까지 다른 쓰기가
발생하지 않음을 보장합니다.
시도해보기
구문
js
Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)
매개변수
typedArray-
정수형 형식화 배열.
Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,BigInt64Array,BigUint64Array중 하나. index-
값을 불러올
typedArray의 인덱스 expectedValue-
동일성을 확인하기 위한 값
replacementValue-
교환할 숫자
반환 값
주어진 위치(typedArray[index])의 예전 값.
예외
typedArray가 허용된 정수형이 아닐 경우TypeError가 발생합니다.index가typedArray의 범위를 벗어날 경우RangeError가 발생합니다.
예제
compareExchange() 사용하기
js
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 7;
Atomics.compareExchange(ta, 0, 7, 12); // 이전 값 7을 반환합니다
Atomics.load(ta, 0); // 12
명세서
| Specification |
|---|
| ECMAScript Language Specification # sec-atomics.compareexchange |
브라우저 호환성
BCD tables only load in the browser