[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/Operator_precedence [Back]  [Original]

Prcdence des oprateurs - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Prcdence des oprateurs

La prcdence des oprateurs dtermine l'ordre dans lequel les oprateurs sont valus. Les oprateurs avec la plus haute prcdence sont valus en premier.

Ainsi, l'oprateur de multiplication ( * ) (ayant une prcdence plus haute que l'oprateur d'addition ( + )) est valu en premier et l'expression 6 * 4 + 2 renverra 26 (et pas 36).

Dans cet article

Exemple interactif

console.log(3 + 4 * 5); // 3 + 20
// Expected output: 23

console.log(4 * 3 ** 2); // 4 * 9
// Expected output: 36

let a;
let b;

console.log((a = b = 5));
// Expected output: 5

Associativit

L'associativit dtermine l'ordre dans lequel des oprateurs de mme prcdence sont valus. Par exemple, considrons l'expression suivante :

js
a OP b OP c

Une associativit de gauche (gauche droite) signifie qu'elle est value comme (a OP b) OP c, tandis qu'une associativit de droite (droite gauche) signifie qu'elle est interprte comme a OP (b OP c). Les oprateurs d'affectation sont associatifs de droite, on peut donc crire :

js
a = b = 5;

avec le rsultat attendu que a et b obtiennent la mme valeur de 5. C'est parce que l'oprateur d'affectation retourne la valeur qu'il affecte. D'abord, b est dfini la valeur 5. Ensuite, a est dfini avec la valeur renvoye par b = 5 qui est 5.

Exemples

js
3 > 2 && 2 > 1;
// renvoie true

3 > 2 > 1;
// renvoie false car 3 > 2 vaut true et que true > 1 vaut false
// En ajoutant des parenthses, on y voit plus clair (3 > 2) > 1

Tableau

Le tableau suivant est class de la plus haute (19) la plus basse (1) prcdence.

Prcdence Type d'oprateur Associativit Oprateurs individuels
19 Groupement Non applicable ( )
18 Accs un membre Gauche droite .
Accs un membre calcul [ ]
new (avec une liste d'arguments) Non applicable new ( )
Appel de fonction Gauche droite ( )
Chanage optionnel ?.
17 new (sans liste d'arguments) Droite gauche new
16 Incrmentation suffixe Non applicable ++
Dcrmentation suffixe --
15 NON logique (!) Droite gauche !
NON binaire (~) ~
Plus unaire (+) +
Ngation unaire (-) -
Incrmentation prfixe ++
Dcrmentation prfixe --
typeof typeof
void void
delete delete
await await
14 Exponentiation (**) Droite gauche **
13 Multiplication (*) Gauche droite *
Division (/) /
Reste (%) %
12 Addition (+) Gauche droite +
Soustraction (-) -
11 Dcalage binaire gauche (<<) Gauche droite <<
Dcalage binaire droite (>>) >>
Dcalage binaire droite non-sign (>>>) >>>
10 Infrieur strict (<) Gauche droite <
Infrieur ou gal (<=) <=
Suprieur strict (>) >
Suprieur ou gal (>=) >=
in in
instanceof instanceof
9 galit faible (==) Gauche droite ==
Ingalit faible (!=) !=
galit stricte (===) ===
Ingalit stricte (!==) !==
8 ET binaire (&) Gauche droite &
7 OU exclusif / XOR binaire (^) Gauche droite ^
6 OU binaire (|) Gauche droite |
5 ET logique (&&) Gauche droite &&
4 OU logique (||) Gauche droite ||
Coalescence des nuls (??) ??
3 Oprateur conditionnel ternaire Droite gauche ? :
2 Affectation Droite gauche =
+=
-=
**=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|=
&&=
||=
??=
yield Droite gauche yield
yield* yield*
1 Virgule Gauche droite ,

Web Proxy Viewer  |  New URL  |  Original Page