Priorité des opérateurs JavaScript
Ordre des opérations
La priorité des opérateurs décrit l'ordre dans lequel les opérations sont effectuées dans une expression arithmétique.
La multiplication ( * ) et la division ( / ) ont une priorité plus élevée que l'addition ( + ) et la soustraction ( - ).
Exemples
Comme en mathématiques traditionnelles, la multiplication est effectuée en premier :
let x = 100 + 50 * 3; Lors de l'utilisation de parenthèses, les opérations à l'intérieur des parenthèses sont calculées en premier :
let x = (100 + 50) * 3; Les opérations ayant la même priorité (comme * et /) sont calculées de gauche à droite :
let x = 100 / 50 * 3; Valeurs de priorité des opérateursLes expressions entre parenthèses sont calculées avant le reste de l'expressionLes fonctions sont exécutées avant que le résultat ne soit utilisé dans le reste de l'expression | |||
| Val | Opérateur | Description | Exemple |
| 18 | ( ) | Regroupement d'expressions | (100 + 50) * 3 |
| 17 | . | Membre de | person.name |
| 17 | [] | Membre de | person["name"] |
| 17 | ?. | Chaînage optionnel ES2020 | x ?. y |
| 17 | () | Appel de fonction | myFunction() |
| 17 | new | Nouveau avec arguments | new Date("5 juin 2022") |
| 16 | new | Nouveau sans arguments | new Date() |
| Opérateurs d'incrémentation Les incréments postfixes sont exécutés avant les incréments préfixes | |||
| 15 | ++ | Incrément postfixe | i++ |
| 15 | -- | Décrément postfixe | i-- |
| 14 | ++ | Incrément préfixe | ++i |
| 14 | -- | Décrément préfixe | --i |
| Opérateurs NOT | |||
| 14 | ! | NOT logique | !(x==y) |
| 14 | ~ | NOT bit à bit | ~x |
| Opérateurs unaires | |||
| 14 | + | Plus unaire | +x |
| 14 | - | Moins unaire | -x |
| 14 | typeof | Type de données | typeof x |
| 14 | void | Évaluer Void | void(0) |
| 14 | delete | Suppression de propriété | delete myCar.color |
| Opérateurs arithmétiques Les exponentiations sont exécutées avant les multiplications Les multiplications et les divisions sont exécutées avant les additions et les soustractions | |||
| 13 | ** | Exponentiation ES2016 | 10 ** 2 |
| 12 | * | Multiplication | 10 * 5 |
| 12 | / | Division | 10 / 5 |
| 12 | % | Reste de division | 10 % 5 |
| 11 | + | Addition | 10 + 5 |
| 11 | - | Soustraction | 10 - 5 |
| 11 | + | Concaténation | "John" + "Doe" |
| Opérateurs de décalage | |||
| 10 | << | Décalage à gauche | x << 2 |
| 10 | >> | Décalage à droite (signé) | x >> 2 |
| 10 | >>> | Décalage à droite (non signé) | x >>> 2 |
| Opérateurs relationnels | |||
| 9 | in | Propriété dans l'objet | "PI" in Math |
| 9 | instanceof | Instance de l'objet | x instanceof Array |
| Opérateurs de comparaison | |||
| 9 | < | Moins que | x < y |
| 9 | <= | Moins que ou égal | x <= y |
| 9 | > | Plus que | x > y |
| 9 | >= | Plus que ou égal | x >= Array |
| 8 | == | Égal | x == y |
| 8 | === | Égal strict | x === y |
| 8 | != | Différent | x != y |
| 8 | !== | Différent strict | x !== y |
| Opérateurs bit à bit | |||
| 7 | & | ET bit à bit | x & y |
| 6 | ^ | OU exclusif bit à bit | x ^ y |
| 5 | | | OU bit à bit | x | y |
| Opérateurs logiques | |||
| 4 | && | ET logique | x && y |
| 3 | || | OU logique | x || y |
| 3 | ?? | Coalescence nullish ES2020 | x ?? y |
| Opérateur conditionnel (ternaire) | |||
| 2 | ? : | Condition | ? "oui" : "non" |
| Opérateurs d'affectation Les affectations sont exécutées après d'autres opérations | |||
| 2 | = | Affectation simple | x = y |
| 2 | : | Affectation par deux-points | x: 5 |
| 2 | += | Affectation d'addition | x += y |
| 2 | -= | Affectation de soustraction | x -= y |
| 2 | *= | Affectation de multiplication | x *= y |
| 2 | **= | Affectation d'exponentiation | x **= y |
| 2 | /= | Affectation de division | x /= y |
| 2 | %= | Affectation de reste | x %= y |
| 2 | <<= | Affectation de décalage à gauche | x <<= y |
| 2 | >>= | Affectation de décalage à droite | x >>= y |
| 2 | >>>= | Décalage à droite non signé | x >>>= y |
| 2 | &= | Affectation ET bit à bit | x &= y |
| 2 | |= | Affectation OU bit à bit | x |= y |
| 2 | ^= | Affectation OU exclusif bit à bit | x ^= y |
| 2 | &&= | Affectation ET logique | x &&= y |
| 2 | ||= | Affectation OU logique | x ||= y |
| 2 | => | Flèche | x => y |
| 2 | yield | Pause / Reprendre | yield x |
| 2 | yield* | Déléguer | yield* x |
| 2 | ... | Étendre | ... x |
| 1 | , | Virgule | x , y |