В чем разница между (для… in) и (для… of) операторов в JavaScript?
Я знаю что такое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
ключ. но для ... не итератор по стоимостиfoo
свойство т.е."hello"
. Почему это так?
Короче говоря:
здесь я утешаюfor... of
петля. это должно быть лог"3", "5", "7","hello"
но здесь это логи"3", "5", "7"
, Зачем ?