En JavaScript, vous pouvez utiliser l' ++
opérateur avant ( pré-incrémentation ) ou après le nom de la variable ( post-incrémentation ). Quelles sont, le cas échéant, les différences entre ces façons d'incrémenter une variable?
En JavaScript, vous pouvez utiliser l' ++
opérateur avant ( pré-incrémentation ) ou après le nom de la variable ( post-incrémentation ). Quelles sont, le cas échéant, les différences entre ces façons d'incrémenter une variable?
Réponses:
Idem que dans les autres langues:
++x
(pré-incrémentation) signifie "incrémenter la variable; la valeur de l'expression est la valeur finale"x++
(post-incrémentation) signifie "mémoriser la valeur d'origine, puis incrémenter la variable; la valeur de l'expression est la valeur d'origine"Maintenant, lorsqu'ils sont utilisés comme une déclaration autonome, ils signifient la même chose:
x++;
++x;
La différence vient lorsque vous utilisez la valeur de l'expression ailleurs. Par exemple:
x = 0;
y = array[x++]; // This will get array[0]
x = 0;
y = array[++x]; // This will get array[1]
+ 1
place de ++
? Existe-t-il un moyen d'incrémenter avant ou après lors de l'ajout de nombres?
x
commence par 10, la valeur de r1
est 21, soit 10 + 11. La valeur de la première x++
expression est 10 et x
est incrémentée à 11. La valeur de la deuxième x++
expression est 11 et x
est incrémentée à 12.
++x
incrémente la valeur, puis l'évalue et la stocke.x++
évalue la valeur, puis l'incrémente et la stocke.var n = 0, m = 0;
alert(n++); /* Shows 0, then stores n = 1 */
alert(++m); /* Shows 1, then stores m = 1 */
Notez que l'utilisation ++x
lorsque cela est possible présente de légers avantages en termes de performances , car vous lisez la variable, la modifiez, puis l'évaluez et la stockez. Par rapport à l' x++
opérateur où vous lisez la valeur, l'évaluez, la modifiez, puis la stockez.
Si je comprends bien, si vous les utilisez de manière autonome, ils font la même chose. Si vous essayez d'en afficher le résultat sous forme d'expression, ils peuvent différer. Essayez alert (i ++) par rapport à alert (++ i) pour voir la différence. i ++ évalue i avant l'addition et ++ i fait l'addition avant d'évaluer.
Voir http://jsfiddle.net/xaDC4/ pour un exemple.
var a = 1;
var b = ++a;
alert('a:' + a + ';b:' + b); //a:2;b:2
var c = 1;
var d = c++;
alert('c:' + c + ';d:' + d); //c:2;d:1
var x = 0, y = 0;
//post-increment: i++ returns value then adds one to it
console.log('x++ will log: ', x++); //0
console.log('x after x++ : ', x); //1
//pre-increment: adds one to the value, then returns it
console.log('++y will log: ', ++y); //1
console.log('y after ++y : ', y); //1
J'ai une explication de la compréhension de la post-incrémentation et de la pré-incrémentation. Alors je le mets ici.
Permet d'assigner 0
àx
let x = 0;
Commençons par post-incrémentation
console.log(x++); // Outputs 0
Pourquoi?
Permet de décomposer l' x++
expression
x = x;
x = x + 1;
La première instruction renvoie la valeur de x
laquelle est0
Et plus tard, lorsque vous utilisez une x
variable n'importe où, la deuxième instruction est exécutée
La deuxième instruction renvoie la valeur de cette x + 1
expression qui est(0 + 1) = 1
Gardez à l'esprit la valeur de x
cet état qui est1
Commençons maintenant par le pré-incrément
console.log(++x); // Outputs 2
Pourquoi?
Permet de décomposer l' ++x
expression
x = x + 1;
x = x;
La première instruction renvoie la valeur de cette x + 1
expression qui est(1 + 1) = 2
La deuxième instruction renvoie la valeur x
dont il est 2
ainsi x = 2
donc elle renvoie2
J'espère que cela vous aidera à comprendre ce que sont la post-incrémentation et la pré-incrémentation!