Atomics.sub()
åºçº¿
广æ³å¯ç¨
èª 2021å¹´12æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
Atomics.sub() éææ¹æ³å¯¹æ°ç»ä¸çæå®ä½ç½®åå»ç»å®çå¼ï¼å¹¶è¿å该ä½ç½®çæ§å¼ãæ¤ååæä½ä¿è¯å¨ä¿®æ¹åçå¼ååä¹åä¸ä¼åçå
¶ä»åæä½ã
å°è¯ä¸ä¸
// Create a SharedArrayBuffer with a size in bytes
const buffer = new SharedArrayBuffer(16);
const uint8 = new Uint8Array(buffer);
uint8[0] = 7;
// 7 - 2 = 5
console.log(Atomics.sub(uint8, 0, 2));
// Expected output: 7
console.log(Atomics.load(uint8, 0));
// Expected output: 5
è¯æ³
js
Atomics.sub(typedArray, index, value)
åæ°
typedArray-
ä¸ä¸ªæ´æ°ç±»åæ°ç»ã
Int8ArrayãUint8ArrayãInt16ArrayãUint16ArrayãInt32ArrayãUint32ArrayãBigInt64ArrayæBigUint64Arrayä¹ä¸ã index-
typedArrayä¸çè¦åå»valueçä½ç½®ã value-
è¦åå»çæ°åã
è¿åå¼
ç»å®ä½ç½®çæ§å¼ (typedArray[index])ã
å¼å¸¸
TypeError-
妿
typedArray䏿¯å è®¸çæ´æ°ç±»åæ°ç»ä¹ä¸ï¼åæåºè¯¥å¼å¸¸ã RangeError-
妿
indexè¶ åºtypedArrayçèå´ï¼åæåºè¯¥å¼å¸¸ã
示ä¾
>ä½¿ç¨ sub()
js
const sab = new SharedArrayBuffer(1024);
const ta = new Uint8Array(sab);
ta[0] = 48;
Atomics.sub(ta, 0, 12); // è¿å 48ï¼å³æ§çå¼
Atomics.load(ta, 0); // 36
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification> # sec-atomics.sub> |