Я знаю, що таке for... inцикл (він повторюється над ключем), але вперше почув про for... ofце (він повторює значення).
Я плутаю for... ofпетлю. Я не отримав adject. Це код нижче:
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"
}
Що я отримав - це for... ofповторює значення властивостей. Тоді чому він не входить (не повертається) "3", "5", "7", "hello"замість "3", "5", "7"? але for... inцикл повторюється над кожною клавішею ( "0", "1", "2", "foo"). Тут for... inцикл також перебирає fooключ. Але for... ofне повторює вартість fooмайна, тобто "hello". Чому це так?
Коротка історія:
Тут я консольний for... ofконтур. Він повинен увійти, "3", "5", "7","hello"але тут він реєструється "3", "5", "7". Чому?
for ... ofбуло введено мову, щоб виправити проблеми з використанням for ... inмасивів. Array.prototypeможна змінити таким чином, щоб були доступні додаткові властивості, що робить його небезпечним для повторення, оскільки ви можете отримати не цифрові ключі, яких ви не очікували.
of(для… циклів) , оскільки він запитує про конкретну поведінку функції, а не просить загального огляду.
for <key> infor <value> offor..of
