Dalam JavaScript Anda dapat menggunakan ++
operator sebelum ( kenaikan awal ) atau setelah nama variabel ( kenaikan pasca ). Apa, jika ada, perbedaan antara cara menaikkan variabel ini?
Dalam JavaScript Anda dapat menggunakan ++
operator sebelum ( kenaikan awal ) atau setelah nama variabel ( kenaikan pasca ). Apa, jika ada, perbedaan antara cara menaikkan variabel ini?
Jawaban:
Sama seperti di bahasa lain:
++x
(pre-increment) berarti "increment variabel; nilai ekspresi adalah nilai akhir"x++
(post-increment) berarti "ingat nilai asli, lalu tambahkan variabel; nilai ekspresi adalah nilai asli"Sekarang ketika digunakan sebagai pernyataan mandiri, artinya sama:
x++;
++x;
Perbedaannya muncul saat Anda menggunakan nilai ekspresi di tempat lain. Sebagai contoh:
x = 0;
y = array[x++]; // This will get array[0]
x = 0;
y = array[++x]; // This will get array[1]
+ 1
bukan ++
? Apakah ada cara untuk menambah sebelum atau sesudah saat menambahkan angka?
x
dimulai sebagai 10, nilai dari r1
adalah 21, yaitu 10 + 11. Nilai x++
ekspresi pertama adalah 10 dan x
bertambah menjadi 11. Nilai x++
ekspresi kedua adalah 11 dan x
bertambah menjadi 12.
++x
menambah nilai, lalu mengevaluasi dan menyimpannya.x++
mengevaluasi nilai, lalu menambah dan menyimpannya.var n = 0, m = 0;
alert(n++); /* Shows 0, then stores n = 1 */
alert(++m); /* Shows 1, then stores m = 1 */
Perhatikan bahwa ada sedikit manfaat performa untuk digunakan ++x
jika memungkinkan, karena Anda membaca variabel, mengubahnya, lalu mengevaluasi dan menyimpannya. Dibandingkan dengan x++
operator tempat Anda membaca nilai, mengevaluasinya, memodifikasinya, lalu menyimpannya.
Seperti yang saya pahami jika Anda menggunakannya secara mandiri, mereka melakukan hal yang sama. Jika Anda mencoba menampilkan hasilnya sebagai ekspresi maka hasilnya mungkin berbeda. Coba alert (i ++) dibandingkan dengan alert (++ i) untuk melihat perbedaannya. i ++ mengevaluasi ke i sebelum penambahan dan ++ i melakukan penambahan sebelum mengevaluasi.
Lihat http://jsfiddle.net/xaDC4/ sebagai contoh.
Saya memiliki penjelasan tentang pemahaman setelah kenaikan dan kenaikan awal. Jadi saya taruh di sini.
Ayo tetapkan 0
kex
let x = 0;
Mari kita mulai dengan kenaikan pasca
console.log(x++); // Outputs 0
Mengapa?
Mari kita hancurkan x++
ekspresi itu
x = x;
x = x + 1;
Pernyataan pertama mengembalikan nilai x
yang adalah0
Dan nanti ketika Anda menggunakan x
variabel di mana saja, maka pernyataan kedua dijalankan
Pernyataan kedua mengembalikan nilai dari x + 1
ekspresi ini yaitu(0 + 1) = 1
Ingatlah nilai x
pada keadaan ini yaitu1
Sekarang mari kita mulai dengan kenaikan sebelumnya
console.log(++x); // Outputs 2
Mengapa?
Mari kita hancurkan ++x
ekspresi itu
x = x + 1;
x = x;
Pernyataan pertama mengembalikan nilai dari x + 1
ekspresi ini yaitu(1 + 1) = 2
Pernyataan kedua mengembalikan nilai x
yang 2
jadi x = 2
demikian ia kembali2
Semoga ini dapat membantu Anda memahami apa itu kenaikan pasca dan kenaikan awal!
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