| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/Addition | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
L'oprateur d'addition (+) produit la somme de deux oprandes numriques ou la concatnation de deux chanes de caractres.
console.log(2 + 2);
// Rsultat attendu : 4
console.log(2 + true);
// Rsultat attendu : 3
console.log("bonjour " + " tous");
// Rsultat attendu : "bonjour tous"
console.log(2001 + " : L'Odysse de l'espace");
// Rsultat attendu : "2001 : L'Odysse de l'espace"
x + y
L'oprateur + est surcharg pour deux oprations distinctes : l'addition numrique et la concatnation de chanes de caractres. Lors de l'valuation, il convertit d'abord les deux oprandes en valeurs primitives. Ensuite, les types des deux oprandes sont tests :
TypeError est leve.La concatnation de chanes de caractres est souvent considre comme quivalente aux littraux gabarits ou String.prototype.concat(), mais ce n'est pas le cas. L'addition convertit l'expression sous contrainte en une valeur primitive, ce qui appelle valueOf() en priorit ; en revanche, les littraux gabarits et concat() convertissent l'expression sous contrainte en une chane de caractres, ce qui appelle toString() en priorit. Si l'expression possde une mthode [Symbol.toPrimitive](), la concatnation de chanes de caractres l'appelle avec "default" comme indication, tandis que les littraux gabarits utilisent "string". Ce point est important pour les objets qui possdent des reprsentations diffrentes sous forme de chane de caractres et de valeur primitive comme Temporal, dont les mthodes valueOf() des objets lvent toutes une exception.
const t = Temporal.Now.instant();
"" + t; // Throws TypeError
`${t}`; // '2022-07-31T04:48:56.113918308Z'
"".concat(t); // '2022-07-31T04:48:56.113918308Z'
Il est dconseill d'utiliser "" + x pour effectuer une conversion en chane de caractres.
1 + 2; // 3
Les autres valeurs qui ne sont pas des chanes de caractres, pas des grands entiers sont converties en nombres :
true + 1; // 2
false + false; // 0
1n + 2n; // 3n
Vous ne pouvez pas mlanger des oprandes de type BigInt et number lors de l'addition. null, undefined et les valeurs boolennes sont converties en nombres et sont galement interdites.
1n + 2; // TypeError: Cannot mix BigInt and other types, use explicit conversions
2 + 1n; // TypeError: Cannot mix BigInt and other types, use explicit conversions
Les chanes de caractres ont la priorit sur les autres types, donc ajouter une chane de caractres un BigInt produit une concatnation de chanes de caractres plutt qu'une TypeError.
"1" + 2n; // "12"
Pour effectuer une addition avec un BigInt et un non-BigInt, convertissez l'un des oprandes :
1n + BigInt(2); // 3n
Number(1n) + 2; // 3
Si l'un des oprandes est une chane de caractres, l'autre est converti en chane de caractres et ils sont concatns :
"toto" + "truc"; // "tototruc"
5 + "toto"; // "5toto"
"toto" + false; // "totofalse"
"2" + 2; // "22"
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-addition-operator-plus |
-)/)*)%)**)++)--)-)+)Cette page a t modifie le 5 sept. 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |