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;
Essayez-le vous-même »

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;
Essayez-le vous-même »

Les opérations ayant la même priorité (comme * et /) sont calculées de gauche à droite :

let x = 100 / 50 * 3;
Essayez-le vous-même »

Valeurs de priorité des opérateurs

Les expressions entre parenthèses sont calculées avant le reste de l'expression
Les 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