J'ai une explication pour comprendre la post-incrémentation et la pré-incrémentation. Je la mets donc ici.
Attribuons 0
à x
let x = 0;
Commençons par la post-incrémentation
console.log(x++); // Outputs 0
Pourquoi ?
Cassons le x++
expression en baisse
x = x;
x = x + 1;
La première instruction renvoie la valeur de x
qui est 0
Et plus tard, lorsque vous utilisez x
la variable n'importe où, alors la deuxième instruction est exécutée
La deuxième déclaration renvoie la valeur de ce x + 1
l'expression qui est (0 + 1) = 1
Gardez à l'esprit la valeur de x
à cet état qui est 1
Commençons par la préincrémentation
console.log(++x); // Outputs 2
Pourquoi ?
Cassons le ++x
expression en baisse
x = x + 1;
x = x;
La première déclaration renvoie la valeur de cette x + 1
l'expression qui est (1 + 1) = 2
La deuxième instruction renvoie la valeur de x
qui est 2
donc x = 2
il renvoie donc 2
J'espère que cela vous aidera à comprendre ce que sont la post-incrémentation et la pré-incrémentation !
1 votes
Voir également la version agnostique de la langue Différence entre i++ et ++i dans une boucle ?
0 votes
Je pensais à cela hier en lisant cette réponse à la question sur mauvaises hypothèses en C/C++ . Dans tous les cas, pouvons-nous garantir que Javascript se comporte de cette manière ? Ou pensez-vous que l'utilisation de l'instruction d'incrémentation au sein d'une instruction plus complexe soit une mauvaise pratique ?
0 votes
Le commentaire précédent est en fait une copie de une réponse (une non-réponse, plutôt) que j'ai postée en 2010 . J'ai supprimé la réponse, mais Jon Skeet avait répondu avec : "En regardant l'ECMA-262, cela semble raisonnablement bien spécifié."