Les types préfixe et postfixe en JavaScript
En fait, les opérations d'incrémentation et de décrémentation
peuvent être écrites de deux manières. Examinons
ces méthodes en utilisant ++ comme exemple,
et pour --, tout sera analogue.
Dans la première méthode, l'opération est écrite après
le nom de la variable, comme ceci : a++, et
dans la seconde méthode - avant le nom de la variable,
comme ceci : ++a.
La première forme est appelée postfixe, et la seconde - préfixe. Voyons dans quels cas la différence entre ces deux formes se manifeste.
Supposons que nous ayons le code alert(a++) et
le code alert(++a).
Dans le cas de alert(a++), la variable est d'abord
affichée, puis augmentée de un,
et dans le cas de alert(++a), la variable est d'abord
augmentée de un, puis affichée.
Dans l'exemple suivant, le premier alert affichera
0, car l'affichage à l'écran se produit d'abord,
et ensuite seulement la variable est incrémentée :
let num = 0;
alert(num++); // affichera 0
alert(num); // affichera 1
Et maintenant, la variable est d'abord incrémentée, et ensuite seulement, l'affichage à l'écran a lieu :
let num = 0;
alert(++num); // affichera 1 - la variable a été incrémentée immédiatement
Ce comportement est valable non seulement pour l'affichage à l'écran, mais aussi pour l'affectation :
let num1 = 0;
let num2 = num1++; // la variable num2 recevra la valeur 0
alert(num2); // affichera 0
alert(num1); // affichera 1 - la variable num1 a changé après l'affectation à num2
Maintenant, changeons la forme postfixe en forme préfixe :
let num1 = 0;
let num2 = ++num1; // la variable num2 recevra la valeur 1
alert(num2); // affichera 1
Si notre opération est effectuée sur une ligne distincte, il n'y a aucune différence entre les formes préfixe et postfixe :
let num = 0;
++num;
num++;
alert(num); // affichera 2
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
let num = 3;
alert(++num);
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
let num = 3;
alert(num++);
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
let num = 3;
alert(--num);
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
let num = 3;
alert(num--);
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
let num1 = 3;
let num2 = ++num1;
alert(num1);
alert(num2);
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
let num1 = 3;
let num2 = num1++;
alert(num1);
alert(num2);
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
let num1 = 3;
let num2 = --num1;
alert(num1);
alert(num2);
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
let num1 = 3;
let num2 = num1--;
alert(num1);
alert(num2);
Sans exécuter le code, déterminez ce qui sera affiché à l'écran :
let num1 = 3;
num1++;
let num2 = num1--;
alert(num1++);
alert(--num2);