Atomics - Phương thức so sánhExchange ()
compareExchangephương pháp so sánh và trao đổi giá trị thay thế nếu giá trị đã cho không giống với giá trị cũ. Nó trả về giá trị cũ tại vị trí đó. Hoạt động nguyên tử này đảm bảo rằng không có lần ghi nào khác có thể xảy ra cho đến khi giá trị đã sửa đổi được ghi lại.
Cú pháp
Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)
Thông số
typedArray là mảng được nhập kiểu số nguyên.
index là vị trí trong khay gõ.
expectedValue để kiểm tra sự bình đẳng.
replacementValue trao đổi.
Trở về
Trả về giá trị cũ ở vị trí đã cho.
Ngoại lệ
TypeError trong trường hợp mảng được truyền không phải là mảng được nhập số nguyên.
RangeError nếu chỉ mục được truyền ra ngoài bị ràng buộc trong mảng đã nhập.
Thí dụ
Sau đây là mã để triển khai JavaScript Atomics:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Atomics Example</title>
<style>
.result {
font-size: 20px;
border: 1px solid black;
}
</style>
</head>
<body onLoad="operate();">
<h1>JavaScript Atomics Properties</h1>
<div class="result"></div>
<p>Atomics.compareExchange(arr, 0, 6, 2)</p>
<p>Atomics.load(arr, 0)</p>
<script>
function operate(){
let container = document.querySelector(".result");
// create a SharedArrayBuffer
var buffer = new SharedArrayBuffer(25);
var arr = new Uint8Array(buffer);
// Initialise element at zeroth position of array with 6
arr[0] = 6;
container.innerHTML = Atomics.compareExchange(arr, 0, 6, 2) + '<br/>' + Atomics.load(arr, 0);
}
</script>
</body>
</html>
Đầu ra
Xác minh kết quả.