Я знаю, что такое 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
слова JavaScript (для ... циклов) , поскольку он спрашивает о конкретном поведении функции, а не запрашивает общий обзор.
for <key> in
for <value> of
for..of