In JavaScript è possibile utilizzare l' ++
operatore prima ( pre-incremento ) o dopo il nome della variabile ( post-incremento ). Quali eventuali differenze ci sono tra questi modi di incrementare una variabile?
In JavaScript è possibile utilizzare l' ++
operatore prima ( pre-incremento ) o dopo il nome della variabile ( post-incremento ). Quali eventuali differenze ci sono tra questi modi di incrementare una variabile?
Risposte:
Come in altre lingue:
++x
(pre-incremento) significa "incrementa la variabile; il valore dell'espressione è il valore finale"x++
(post-incremento) significa "ricorda il valore originale, quindi incrementa la variabile; il valore dell'espressione è il valore originale"Ora, se usati come dichiarazioni autonome, significano la stessa cosa:
x++;
++x;
La differenza viene quando si utilizza il valore dell'espressione altrove. Per esempio:
x = 0;
y = array[x++]; // This will get array[0]
x = 0;
y = array[++x]; // This will get array[1]
+ 1
invece di ++
? C'è un modo per aumentare prima o dopo l'aggiunta di numeri?
x
inizia come 10, il valore di r1
è 21, ovvero 10 + 11. Il valore della prima x++
espressione è 10 ed x
è incrementato a 11. Il valore della seconda x++
espressione è 11 ed x
è incrementato a 12.
++x
incrementa il valore, quindi lo valuta e lo memorizza.x++
valuta il valore, quindi lo incrementa e lo memorizza.var n = 0, m = 0;
alert(n++); /* Shows 0, then stores n = 1 */
alert(++m); /* Shows 1, then stores m = 1 */
Si noti che ci sono lievi vantaggi in termini di prestazioni ++x
quando possibile, poiché si legge la variabile, la si modifica, quindi si valuta e si memorizza. Contro l' x++
operatore in cui leggi il valore, lo valuti, lo modifichi, quindi lo memorizzi.
Se li capisco, se li usi da soli, fanno la stessa cosa. Se si tenta di generare il risultato come espressione, potrebbero differire. Prova avviso (i ++) rispetto all'avviso (++ i) per vedere la differenza. i ++ valuta i prima dell'aggiunta e ++ i fa l'aggiunta prima della valutazione.
Vedi http://jsfiddle.net/xaDC4/ per un esempio.
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
Ho una spiegazione della comprensione post-incremento e pre-incremento. Quindi lo sto mettendo qui.
Consente di assegnare 0
ax
let x = 0;
Iniziamo con il post-incremento
console.log(x++); // Outputs 0
Perché?
Consente di suddividere l' x++
espressione
x = x;
x = x + 1;
La prima istruzione restituisce il valore di x
cui è0
E più tardi, quando usi la x
variabile ovunque, viene eseguita la seconda istruzione
La seconda istruzione restituisce il valore di questa x + 1
espressione che è(0 + 1) = 1
Tieni presente il valore di x
questo stato che è1
Ora cominciamo con il pre-incremento
console.log(++x); // Outputs 2
Perché?
Consente di suddividere l' ++x
espressione
x = x + 1;
x = x;
La prima istruzione restituisce il valore di questa x + 1
espressione che è(1 + 1) = 2
In secondo luogo istruzione restituisce il valore x
che è 2
così x = 2
quindi restituisce2
Spero che questo possa aiutarti a capire cosa sono post-incremento e pre-incremento!