Я знаю, что такое цикл 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"
. Почему?