Mini-JS d_Avances
Opérateurs avancés
Après avoir étudié les opérateurs de base, intéressons-nous à des constructions un peu plus complexes que JavaScript met à notre disposition. Ces opérateurs sont très utiles dans les programmes réels, car ils permettent de gagner en concision et en expressivité.
L’ordre des opérations
Comme en mathématiques, toutes les opérations ne sont pas
évaluées dans l’ordre où elles apparaissent. Chaque opérateur
possède une priorité, appelée
précédence.
Par exemple, la multiplication et la division sont effectuées
avant l’addition et la soustraction. Les parenthèses permettent de
modifier cet ordre.
console.log(2 + 3 * 4); // 14 (multiplication avant addition)
console.log((2 + 3) * 4); // 20 (parenthèses prioritaires)L’opérateur de puissance
L’opérateur ** permet d’élever un nombre à une
puissance donnée. C’est une alternative plus lisible à
Math.pow.
console.log(2 ** 3); // 8
console.log(5 ** 2); // 25Incrémentation et décrémentation
Les opérateurs ++ et -- servent
respectivement à augmenter ou diminuer la valeur d’une variable de
1. Ils peuvent être utilisés avant ou
après la variable, mais l’effet n’est pas
exactement le même.
let a = 5;
console.log(++a); // 6 (incrémentation avant lecture)
console.log(a++); // 6 (puis la variable passe à 7)Ce comportement est à connaître, même si en pratique on
privilégie souvent des formes explicites comme
a = a + 1.
Opérateurs d’affectation combinés
JavaScript propose des raccourcis pour combiner une opération et une affectation.
let x = 10;
x += 5; // équivaut à x = x + 5
x -= 3; // équivaut à x = x - 3
x *= 2; // équivaut à x = x * 2
x /= 4; // équivaut à x = x / 4
x %= 3; // équivaut à x = x % 3Ces opérateurs rendent le code plus concis et améliorent la lisibilité lorsqu’une variable est modifiée par rapport à elle-même.
L’opérateur nullish coalescing (??)
Introduit plus récemment, l’opérateur ?? permet de
fournir une valeur par défaut lorsqu’une variable vaut
null ou undefined.
let nom;
console.log(nom ?? "Anonyme"); // "Anonyme"
nom = "Alice";
console.log(nom ?? "Anonyme"); // "Alice"Cet opérateur est particulièrement utile pour éviter les erreurs lorsque certaines valeurs ne sont pas définies.
À retenir
En JavaScript, la précédence des opérateurs
détermine l’ordre des calculs, mais les parenthèses permettent
toujours de clarifier les priorités. L’opérateur **
sert aux puissances, tandis que ++ et --
permettent d’incrémenter ou décrémenter une variable. Les
opérateurs d’affectation combinés (+=,
-=, *=, /=,
%=) simplifient l’écriture des mises à jour de
variables. Enfin, l’opérateur ?? est une manière
élégante de définir une valeur par défaut en cas de
null ou undefined.