Qu’est-ce qu’un opérateur ?
Un opérateur est un symbole qui va être utilisé pour effectuer certaines actions notamment sur les variables et leurs valeurs.
Par exemple, l’opérateur *
va nous permettre de multiplier les valeurs de deux variables, tandis que l’opérateur =
va nous permettre d’affecter une valeur à une variable.
Il existe différents types d’opérateurs qui vont nous servir à réaliser des opérations de types différents. Les plus fréquemment utilisés sont :
- Les opérateurs arithmétiques ;
- Les opérateurs d’affectation / d’assignation ;
- Les opérateurs de comparaison ;
- Les opérateurs d’incrémentation et décrémentation ;
- Les opérateurs logiques ;
- L’opérateur de concaténation ;
- L’opérateur ternaire ;
- l’opérateur virgule.
Pour le moment, nous allons nous concentrer particulièrement sur les opérateurs arithmétiques et d’affectation ou d’assignation. Nous étudierons les autres par la suite lorsqu’on devra les utiliser dans certaines structures JavaScript.
Les opérateurs arithmétiques
Les opérateurs arithmétiques vont nous permettre d’effectuer toutes sortes d’opérations mathématiques entre les valeurs de type Number
contenues dans différentes variables.
Le fait de pouvoir réaliser des opérations entre variables va être très utile dans de nombreuses situations puisqu’en JavaScript nous allons souvent utiliser des nombres pour traiter des données ou calculer de nouvelles valeurs.
Nous allons pouvoir utiliser les opérateurs arithmétiques suivants en JavaScript :
Opérateur | Nom de l’opération associée |
---|---|
+ | Addition |
– | Soustraction |
* | Multiplication |
/ | Division |
% | Modulo (reste d’une division euclidienne) |
** | Exponentielle (élévation à la puissance d’un nombre par un autre) |
Avant d’utiliser les opérateurs arithmétiques, clarifions ce que sont le modulo et l’exponentielle.
Le modulo correspond au reste entier d’une division euclidienne. Par exemple, lorsqu’on divise 5 par 3, le résultat est 1 et il reste 2 dans le cas d’une division euclidienne. Le reste, 2, correspond justement au modulo.
L’exponentielle correspond à l’élévation à la puissance d’un nombre par un autre nombre. La puissance d’un nombre est le résultat d’une multiplication répétée de ce nombre par lui-même. Par exemple, lorsqu’on souhaite calculer 2 à la puissance de 3 (qu’on appelle également « 2 exposant 3 »), on cherche en fait le résultat de 2 multiplié 3 fois par lui-même c’est-à-dire 2*2*2 = 8.
See the Pen
Cours JavaScript 2.3.1 by Pierre (@pierregiraud)
on CodePen.
Ici, on effectue quelques opérations mathématiques de base et on affiche les résultats dans une boite d’alerte. Vous pouvez déjà noter qu’on utilise à nouveau le signe +
pour afficher les résultats mais cette fois ci cet opérateur est utilisé en tant qu’opérateur de concaténation. Nous reparlerons de cela dans la suite de cette leçon. Notez également l’utilisation du \n
qui sert en JavaScript à retourner à la ligne à la manière d’un élément HTML br
.
Priorité des calculs et utilisation des parenthèses
Concernant les règles de calcul, c’est-à-dire l’ordre de priorité des opérations, celui-ci va être le même qu’en mathématiques : l’élévation à la puissance va être prioritaire sur les autres opérations, tandis que la multiplication, la division et le modulo vont avoir le même ordre de priorité et être prioritaires sur l’addition et la soustraction qui ont également le même niveau de priorité.
Si deux opérateurs ont le même ordre de priorité, alors c’est leur sens d’association qui va décider du résultat. Pour les opérateurs arithmétiques, le sens d’association correspond à l’ordre de leur écriture à l’exception de l’élévation à la puissance qui sera calculée en partant de la fin.
Ainsi, si on écrit let x = 1 – 2 – 3
, la variable let x
va stocker la valeur -4 (les opérations se font de gauche à droite). En revanche, si on écrit let z = 2 ** 3 ** 2
, la variable let z
stockera 512 qui correspond à 2 puissance 9 puisqu’on va commencer par calculer 3 ** 2 = 9 dans ce cas.
Nous allons finalement, comme en mathématiques, pouvoir forcer l’ordre de priorité en utilisant des couples de parenthèses pour indiquer qu’une opération doit se faire avant toutes les autres :
See the Pen
Cours JavaScript 2.3.2 by Pierre (@pierregiraud)
on CodePen.
Les opérateurs d’affectation
Les opérateurs d’affectation vont nous permettre, comme leur nom l’indique, d’affecter une certaine valeur à une variable.
Nous connaissons déjà bien l’opérateur d’affectation le plus utilisé qui est le signe =
. Cependant, vous devez également savoir qu’il existe également des opérateurs « combinés » qui vont effectuer une opération d’un certain type (comme une opération arithmétique par exemple) et affecter en même temps.
Vous pourrez trouver ci-dessous quelques-uns de ces opérateurs qui vont être le plus utiles pour nous pour le moment :
Opérateur | Définition |
---|---|
+= | Additionne puis affecte le résultat |
-= | Soustrait puis affecte le résultat |
*= | Multiplie puis affecte le résultat |
/= | Divise puis affecte le résultat |
%= | Calcule le modulo puis affecte le résultat |
Illustrons immédiatement cela et voyons comment se servir de ces opérateurs :
See the Pen
Cours JavaScript 2.3.4 by Pierre (@pierregiraud)
on CodePen.
Ici, vous devez bien comprendre que les opérateurs d’affectation combinés nous permettent d’effectuer deux types d’opérations à la suite. Dans l’exemple ci-dessus, on réalise des opérations arithmétiques puis d’affectation.
Ainsi, l’opérateur +=
par exemple va nous permettre d’ajouter une valeur à la valeur contenue dans une variable puis d’affecter le résultat dans cette même variable. La nouvelle valeur va ainsi écraser la valeur précédente.