Opérateurs arithmétiques
Les opérateurs arithmétiques utilisent des valeurs numériques (variables ou littéraux) comme opérandes et renvoient une valeur numérique. Les opérateurs arithmétiques standard sont l'addition (+), la soustraction (-), la multiplication (*), et la division (/).
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Addition (+)
L'opérateur d'addition permet d'obtenir la somme des opérandes numériques ou bien la concaténation de chaînes de caractères.
Syntaxe
Opérateur : x + y
Exemples
// nombre + nombre -> addition
1 + 2 // 3
// booléen + nombre -> addition
true + 1 // 2
// booléen + booléen -> addition
false + false // 0
// nombre + chaîne de caractères -> concaténation
5 + "
concaténation
"toto" + false // "totofalse"
// chaîne de caractères + chaîne de caractères -> concaténation
"toto" + "truc" // "tototruc"
Soustraction (-)
L'opérateur de soustraction soustrait les deux opérandes pour obtenir leur différence.
Syntaxe
Opérateur : x - y
Exemples
5 - 3 // 2
3 - 5 // -2
"toto" - 3 // NaN
Division (/)
L'opérateur de division produit le quotient de ces opérandes avec l'opérande gauche comme numérateur et l'opérande droit comme dénominateur.
Syntaxe
Opérateur : x / y
Exemples
1 / 2 // renvoie 0.5 en JavaScript
1 / 2 // renvoie 0 en Java
// (aucun des deux opérandes n'est un nombre flottant de façon explicite)
1.0 / 2.0 // renvoie 0.5 en JavaScript et Java
2.0 / 0 // renvoie Infinity (pour l'infini) en JavaScript
2.0 / 0.0 // renvoie Infinity également
2.0 / -0.0 // renvoie -Infinity en JavaScript
Multiplication (*)
L'opérateur de multiplication permet d'obtenir le produit des opérandes.
Syntaxe
Opérateur : x * y
Exemples
2 * 2 // 4
-2 * 2 // -4
Infinity * 0 // NaN
Infinity * Infinity // Infinity
"toto" * 2 // NaN
Reste (%)
L'opérateur « reste » renvoie le reste de la division du premier opérande par le second. Le résultat obtenu a toujours le signe du numérateur (la quantité divisée).
Syntaxe
Opérateur : var1 % var2
Exemples
12 % 5 // 2
-1 % 2 // -1
1 % -2 // 1
NaN % 2 // NaN
1 % 2 // 1
2 % 3 // 2
-4 % 2 // -0
5.5 % 2 // 1.5
Exponentiation (**)
L'opérateur d'exponentiation (aussi appelé opérateur de puissance) renvoie le résultat de l'élévation d'un nombre (premier opérande) à une puissance donnée (deuxième opérande). Par exemple : var1 ** var2
sera équivalent à var1var2
en notation mathématique. Cet opérateur est associatif à droite, autrement dit a ** b ** c
est égal à a ** (b ** c)
.
Syntaxe
Opérateur : var1 ** var2
Notes
Dans la plupart des langages (par exemple PHP, Python, etc.), l'opérateur d'exponentiation est défini avec une précédence supérieure à celle des opérateurs unaires tels que le plus unaire et le moins unaire. Des exceptions existent comme Bash où l'opérateur ** a une précédence inférieure à celle des opérateurs unaires. En JavaScript, il est impossible d'écrire une expression ambigüe avec l'exponentiation : il est impossible de placer un opérateur unaire juste avant le nombre.
-2 ** 2;
// vaut 4 en Bash ou -4 avec d'autres langages
// C'est invalide en JavaScript car il y
// une ambiguïté liée à l'expression
- (2 ** 2);
// -4 en JavaScript car les parenthèses lèvent
// l'ambiguïté
Exemples
2 ** 3 // 8
3 ** 2 // 9
3 ** 2.5 // 15.588457268119896
10 ** -1 // 0.1
NaN ** 2 // NaN
2 ** 3 ** 2 // 512
2 ** (3 ** 2) // 512
(2 ** 3) ** 2 // 64
Note : JavaScript possède également un opérateur binaire ^ (XOR logique). **
et ^
sont deux opérateurs bien différents. Par exemple 2 ** 3 === 8
et 2 ^ 3 === 1
.
Incrément (++)
L'opérateur d'incrément ajoute une unité à son opérande et renvoie une valeur.
- Si l'opérateur est utilisé en suffixe (par exemple : x++), il renvoie la valeur avant l'incrémentation.
- Si l'opérateur est utilisé en préfixe (par exemple : ++x), il renvoie la valeur après l'incrémentation.
Syntaxe
Opérateur : x++ ou ++x
Exemples
// Suffixe
var x = 3;
y = x++; // y = 3, x = 4
// Préfixe
var a = 2;
b = ++a; // a = 3, b = 3
Décrément (--)
L'opérateur de décrément soustrait une unité à son opérande et renvoie une valeur.
- Si l'opérateur est utilisé en suffixe (par exemple : x--), il renvoie la valeur avant la décrémentation.
- Si l'opérateur est utilisé en préfixe (par exemple : --x), il renvoie la valeur après la décrémentation.
Syntaxe
Opérateur : x-- ou --x
Exemples
// Suffixe
var x = 3;
y = x--; // y = 3, x = 2
// Préfixe
var a = 2;
b = --a; // a = 1, b = 1
Négation unaire (-)
L'opérateur de négation unaire précède son opérande et prend l'opposé de celui-ci (après l'avoir converti en nombre si besoin).
Syntaxe
Opérateur : -x
Exemples
var x = 3;
y = -x; // y = -3, x = 3
// La négation unaire permet de convertir
// un opérande en nombre
var y = "4";
var z = -y; // z = -4
Plus unaire (+)
L'opérateur unaire plus (+) précède son opérande, l'évaluation correspond à son opérande, converti en nombre si possible et si ce n'est pas déjà un nombre. Bien que l'opérateur de négation unaire (-) puisse également convertir les expressions qui ne sont pas des nombres, le plus unaire est la méthode la plus efficace et celle la plus utilisée pour convertir quelque chose en un nombre car la conversion est la seule opération effectuée. Cet opérateur permet de convertir les chaînes de caractères représentant des nombres entiers, des nombres flottants ainsi que les valeurs true
, false
, et null
. Les entiers, représentés sous forme décimale ou hexadécimale (préfixés par "0x"), sont supportés. Les nombres négatifs sont également supportés (mais pas au format hexadécimal). Si l'opérateur ne peut pas analyser l'opérande fourni, il sera évalué à NaN.
Syntaxe
Opérator : +x
Exemples
+3 // 3
+"3" // 3
+true // 1
+false // 0
+null // 0
+function(val){ return val; } // NaN
Spécifications
Spécification | État | Commentaires |
---|---|---|
ECMAScript (ECMA-262) | Standard évolutif | |
ECMAScript 2017 (ECMA-262) | Standard | |
ECMAScript 2016 (ECMA-262) | Standard | Ajout de l'opérateur d'exponentiation. |
ECMAScript 2015 (6th Edition, ECMA-262) | Standard | Définis au sein de plusieurs sections de cette spécification : Opérateurs additifs, opérateurs multiplicatifs, expressions postfixes, opérateurs unaires. |
ECMAScript 5.1 (ECMA-262) | Standard | Définis au sein de plusieurs sections de cette spécification : Opérateurs additifs, opérateurs multiplicatifs, expressions postfixes, opérateurs unaires. |
ECMAScript 1st Edition (ECMA-262) | Standard | Définition initiale |
Compatibilité des navigateurs
No compatibility data found for javascript.operators.arithmetic
.
Check for problems with this page or contribute missing data to mdn/browser-compat-data.