Я знаю, что такое 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> infor <value> offor..of
