Inilah yang biasanya saya tulis untuk loop.
untuk (var i = 0; i <20; i ++) {....}Tapi saya pikir beberapa orang menulis ini
untuk (var i = 0; i <20; ++ i) {..}Apa dampaknya pada loop untuk?
1. Tampaknya tidak ada perbedaan untuk ...
Tetapi saat digunakan dalam penugasan, ada perbedaan ...
var a = 1; var b = a ++; var c = 1; var d = ++ c; console.log (b, d); // 1, 2
A ++ adalah menerapkan yang pertama, lalu tambahkan sendiri
++ A adalah menambahkannya terlebih dahulu, dan kemudian terapkan a
2. Ini mungkin kebiasaan yang dibawa oleh era C/C ++. Legenda mengatakan bahwa ++ I lebih cepat dari i ++, tetapi pada kenyataannya, kinerja keduanya serupa di JS.
Adapun detail spesifik, spesifikasinya ditulis sebagai berikut:
Untuk situasi di depan -
UnaryExpression: ++ unaryExpressionlet expr sebagai hasil dari evaluasi unaryexpression. Biarkan nilai lama menjadi tonumber (getValue (expr)). Returnifucrupt (oldValue) .mau new -value). Ifabrupt (status). Kembalinya newValue.
Terjemahan kasar:
1. Biarkan Expr sama dengan hasil ekspresi saat ini (yaitu bagian setelah ++)
2. Biarkan OldValue sama dengan hasil EXPR yang mengonversi ke angka
3. Gunakan aturan yang sama dengan operator " +", biarkan newValue = oldValue + 1
4. Tetapkan NEWVALUE untuk Expr
5. Seluruh operasi mengembalikan newValue
Untuk situasi di baliknya -
PostfixExpression: LefthandsideExpression ++
1. Betlah lhs menjadi hasil dari evaluasi lefthandsideExpression.
2. Betlah oldvalue menjadi tonumber (getValue (LHS)).
3. Returnifabrupt (OldValue).
4. Betlah newValue menjadi hasil dari menambahkan nilai 1 ke oldValue, menggunakan aturan yang sama seperti untuk operator + (lihat 12.7.5).
5. Biarkan status putvalue (LHS, NewValue).
6. Returnifabrupt (Status).
7. Kembalikan OldValue.
Terjemahan kasar -
1. Biarkan LHS sama dengan hasil ekspresi saat ini (bagian sebelumnya dari ++)
2. Biarkan OldValue sama dengan LHS untuk mengonversi hasil dari angka
3. Gunakan aturan yang sama dengan operator " +", biarkan newValue = oldValue + 1
4. Tetapkan NEWVALUE untuk LHS
5. Seluruh operasi mengembalikan OldValue
Dapat dilihat bahwa perbedaan antara keduanya hanyalah langkah terakhir. Apakah seluruh operasi kembali setelah menambahkan satu atau sebelum menambahkan satu.
Untuk pernyataan untuk:
untuk (var i = 0; i <n; i ++)
Kolom terakhir hanya menambah diri sendiri dan tidak menetapkan nilai ini kepada siapa pun, jadi dari sudut pandang ini, itu sama untuk simbol ++ untuk ditempatkan di depan atau sesudahnya.
3. Faktanya, tidak ada banyak perbedaan. Tetapi jika Anda ingin mengejar sedikit efisiensi itu, ++ saya memang akan lebih efisien.
Ini memang dari pustaka standar STD C ++. Ketika saya adalah iterator dari wadah STD, saya bukan angka, i ++ akan menghasilkan operasi penugasan tambahan, jadi ++ saya memiliki kinerja yang lebih tinggi. Oleh karena itu, orang yang terbiasa dengan C ++ suka menggunakan ++ I untuk menghemat uang ketika saya bukan nilai numerik.
Di atas adalah perbedaan antara I ++ dan ++ I di JS untuk loop yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!