Saya tahu apa itu for... inloop (iterates over key), tetapi mendengar pertama kali tentang for... of(iterates over value).
Saya bingung dengan for... ofloop. 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... ofmengulangi nilai properti. Lalu mengapa itu tidak masuk (kembali) "3", "5", "7", "hello"bukan "3", "5", "7"? tetapi for... inloop berulang di atas setiap tombol ( "0", "1", "2", "foo"). Di sini for... inloop juga beralih pada fookunci. Tetapi for... oftidak mengulangi nilai fooproperti yaitu "hello". Kenapa begitu?
Singkat cerita:
Di sini saya konsol for... ofloop. Seharusnya log "3", "5", "7","hello"tapi di sini log "3", "5", "7". Mengapa
for ... ofdibawa ke bahasa untuk memperbaiki masalah dengan menggunakan for ... indengan Array. Array.prototypedapat 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
