Saya tahu apa itu for... in
loop (iterates over key), tetapi mendengar pertama kali tentang for... of
(iterates over value).
Saya bingung dengan for... of
loop. Saya tidak mendapatkan kata sifat. Ini adalah kode di bawah ini:
var arr = [3, 5, 7];
arr.foo = "hello";
for (var i in arr) {
console.log(i); // logs "0", "1", "2", "foo"
}
for (var i of arr) {
console.log(i); // logs "3", "5", "7"
// it is does not log "3", "5", "7", "hello"
}
Apa yang saya dapatkan adalah, for... of
mengulangi nilai properti. Lalu mengapa itu tidak masuk (kembali) "3", "5", "7", "hello"
bukan "3", "5", "7"
? tetapi for... in
loop berulang di atas setiap tombol ( "0", "1", "2", "foo"
). Di sini for... in
loop juga beralih pada foo
kunci. Tetapi for... of
tidak mengulangi nilai foo
properti yaitu "hello"
. Kenapa begitu?
Singkat cerita:
Di sini saya konsol for... of
loop. Seharusnya log "3", "5", "7","hello"
tapi di sini log "3", "5", "7"
. Mengapa
for ... of
dibawa ke bahasa untuk memperbaiki masalah dengan menggunakan for ... in
dengan Array. Array.prototype
dapat diubah sedemikian rupa sehingga properti tambahan tersedia, membuatnya tidak aman untuk mengulanginya karena Anda bisa mendapatkan kunci non numerik yang tidak Anda harapkan.
of
(untuk ... dari lilitan) , karena ini menanyakan tentang perilaku spesifik fitur tersebut, daripada meminta gambaran umum secara umum.
for <key> in
" dan " for <value> of
" dan menyadari bahwa IE tidak mendukungfor..of