--- title: for slug: Web/JavaScript/Reference/Statements/for translation_of: Web/JavaScript/Reference/Statements/for ---
Выражение for создаёт цикл, состоящий из 3 необязательных выражений в круглых скобках, разделённых точками с запятой.
for ([инициализация]; [условие]; [финальное выражение])выражение
var. Эти переменные видимы не только в цикле, т.е. в той же области области видимости, что и цикл for. Результат этого выражения отбрасывается.for.{ ... }) для группировки этих выражений. Чтобы не выполнять никакого выражения в цикле, используйте пустое выражение (;).forСледующий цикл for начинается объявлением переменной i и задания ей значения 0. Затем проверяет, что i меньше девяти, выполняет выражения внутри цикла и увеличивает i на 1 каждый раз.
for (var i = 0; i < 9; i++) {
console.log(i);
// ещё какие-то выражения
}
forВсе 3 выражения в цикле for не обязательны.
Например, в блоке инициализации не требуется определять переменные:
var i = 0;
for (; i < 9; i++) {
console.log(i);
// ещё выражения
}
Как и блок инициализации, блок условия не обязателен. Если пропустите это выражение, вы должны быть уверены, что прервёте цикл где-то в теле, а не создадите бесконечный цикл.
for (var i = 0;; i++) {
console.log(i);
if (i > 3) break;
// тут какой-то код
}
Вы можете пропустить все 3 блока. Снова убедитесь, что используете break, чтоб закончить цикл, а также изменить счётчик, так что условие для break было истинно в нужный момент.
var i = 0;
for (;;) {
if (i > 3) break;
console.log(i);
i++;
}
for без блока выраженийСледующий цикл for вычисляет смещение позиции узла в секции [финальное выражение], и, следовательно, не требует использования выражения внутри цикла или блока, пустое выражение используется вместо этого.
function showOffsetPos (sId) {
var nLeft = 0, nTop = 0;
for (var oItNode = document.getElementById(sId); // инициализация
oItNode; // условие
nLeft += oItNode.offsetLeft, nTop += oItNode.offsetTop, oItNode = oItNode.offsetParent) // финальное выражение
/* пустое выражение */ ;
console.log("Смещение позиции элемента \"" + sId + "\":\n left: " + nLeft + "px;\n top: " + nTop + "px;");
}
// Пример вызова:
showOffsetPos("content");
// Выводит:
// "Смещение позиции элемента "content":
// left: 0px;
// top: 153px;"
{{Compat}}
do...whilefor...infor...of