Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Atomics : méthode statique or()
Baseline Widely available
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis décembre 2021.
La méthode statiqueor() de l'objetAtomics calcule un OU binaire entre une valeur donnée et la valeur présente à une position donnée du tableau, et retourne l'ancienne valeur à cette position. Cette opération atomique garantit qu'aucune autre écriture n'intervient tant que la valeur modifiée n'a pas été réinscrite.
Dans cet article
Exemple interactif
// Crée un SharedArrayBuffer avec une taille en octetsconst buffer = new SharedArrayBuffer(16);const uint8 = new Uint8Array(buffer);uint8[0] = 5;// 5 (0101) OR 2 (0010) = 7 (0111)console.log(Atomics.or(uint8, 0, 2));// Résultat attendu : 5console.log(Atomics.load(uint8, 0));// Résultat attendu : 7Syntaxe
Atomics.or(typedArray, index, value)Paramètres
typedArrayUn tableau typé entier partagé parmi
Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,BigInt64ArrayouBigUint64Array.indexLa position du tableau
typedArraysur laquelle calculer le OU binaire.valueLe nombre avec lequel calculer le OU binaire.
Valeur de retour
L'ancienne valeur contenue à l'emplacement du tableau (typedArray[index]).
Exceptions
TypeErrorLèvee si
typedArrayn'est pas l'un des types d'entiers autorisés.RangeErrorLevée si
indexest en dehors des limites detypedArray.
Description
L'opération binaire OU retourne 1 sia oub valent 1. La table de vérité de cette opération est :
a | b | a | b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Par exemple, un OU binaire de5 | 1 retourne0101, ce qui correspond à 5 en notation décimale.
5 01011 0001 ----5 0101
Exemples
>Utilisation deor()
const sab = new SharedArrayBuffer(1024);const ta = new Uint8Array(sab);ta[0] = 2;Atomics.or(ta, 0, 1); // retourne 2, l'ancienne valeurAtomics.load(ta, 0); // 3Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-atomics.or> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Atomics - La méthode
Atomics.and() - La méthode
Atomics.xor()