Неправильная петля for
10. Условие должно быть вторым оператором в цикле for
.
Следующий код должен работать.
for (let i = 0; i < 10 ; i++;) {
window.setInterval(function() {
console.log('Test');
} , 100)
}
Ожидаемый Синтаксис for
петля. Вы можете прочитать больше here
для ([инициализации]; [состояние] [окончательного выражения])
заявление
EDIT 1:
Хотя все ответы (в том числе и у меня) что условие должно быть вторым утверждением в цикле for
, что является правильным. Есть еще одно важное важное поведение.
Цикл for for (let i = 0; i++; i < 10)
на самом деле правильный с точки зрения грамматики, и даже javascript runtime выполняет этот код.
Но, как в вашем случае, если условие вычисляемая falsy значения, то это было бы выйти из цикла.
Сломать цикл for (let i = 0; i++; i < 10)
в каждый индивидуальный построить
Инициализация:let i = 0;
Это утверждение инициализирует значение переменной я до 0.
Состояние:i++;
Javascript оценивает заявление чтобы проверить, истинно это утверждение или нет. В случае i++
время выполнения сначала проверяет текущее значение i, которое равно 0
. Поскольку 0
считается значением falsy, условие принимает значение false и, следовательно, оператор не выполняется. Кроме того, оператор i++
является приращением по почте, который в основном увеличивает i, а затем возвращает исходное значение i.
Так что, если бы вы написали цикл, как показано ниже, используя intiliaztion из i=1
, то это сработало бы, хотя бы работать бесконечно до тех пор пока происходит сбой браузера/Server как условие i++
всегда будет вычисляться правда. Я надеюсь, что в этом есть смысл.
for (let i = 1; i++; i < 10) {
// Statements would run
}
Или
for (let i = 0; ++i; i < 10) { **// Pre increment**
// Statements would run
}
Или
for (let i = 0; i=i+1; i < 10) { **// increment i by assigment
// Statements would run
}
Дуглас Крокфорд в своей книге Good Parts упомянуть об использовании ++
& --
и как это может ввести в заблуждение читателей.
У вас есть условие, смешанное с приращением. 'i <10; i ++ ' – Ryan
Хотя условие не в том месте, было бы также необычным запустить такой же' setInterval' в таком цикле. Обратный вызов будет выполняться 10 раз каждые 100 мс. –
Спасибо, ребята, извините за durp. – user3682983