A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Statements/for below:

for - JavaScript | MDN

for

Baseline Widely available

Введение

Оператор for создаёт цикл, состоящий из трех необязательных выражений, заключенных в круглые скобки и разделенных точкой с запятой, за которыми следует инструкция (часто блок инструкций), которая должна выполняться в цикле.

Интерактивный пример
let str = "";

for (let i = 0; i < 9; i++) {
  str = str + i;
}

console.log(str);
// Expected output: "012345678"
Синтаксис
for ([инициализация]; [условие]; [финальное выражение])
  [инструкция]
Примеры Использование for

Следующий цикл for начинается объявлением переменной i и задания ей значения 0. Затем проверяет, что i меньше девяти, выполняет инструкцию внутри блока инструкций и инкрементирует (Инкремент) i на каждой итерации.

for (let i = 0; i < 9; i++) {
  console.log(i);
  // ещё какие-то инструкции
}
Синтаксис блока инициализации

В блоке инициализации возможно как объявления переменных, так и более сложные выражения. Однако выражения не могут использовать оператор in без скобок, потому что это конфликтует с циклом for...in.

for (let i = "start" in window ? window.start : 0; i < 9; i++) {
  console.log(i);
}
// SyntaxError: 'for-in' loop variable declaration may not have an initializer.
// Все выражение инициализации переменной взято в скобки
for (let i = ("start" in window ? window.start : 0); i < 9; i++) {
  console.log(i);
}

// Выражение `in` взято в скобки
for (let i = ("start" in window) ? window.start : 0; i < 9; i++) {
  console.log(i);
}
Необязательные выражения в for

Все 3 выражения в цикле for не обязательны.

Например, в блоке инициализации не требуется определять переменные:

let i = 0;
for (; i < 9; i++) {
  console.log(i);
  // ещё выражения
}

Как и блок инициализации, блок условия не обязателен. Если пропустите это выражение, вы должны быть уверены, что прервёте цикл где-то в теле, а не создадите бесконечный цикл.

for (let i = 0; ; i++) {
  console.log(i);
  if (i > 3) break;
  // тут какой-то код
}

Вы можете пропустить все 3 блока. Снова убедитесь, что используете break, чтоб закончить цикл, а также изменить счётчик, так что условие для break было истинно в нужный момент.

let i = 0;

for (;;) {
  if (i > 3) break;
  console.log(i);
  i++;
}
Использование for без блока инструкций

Следующий цикл for вычисляет смещение позиции узла в секции [финальное выражение], и, следовательно, не требует использования инструкции или блока инструкций внутри цикла, вместо этого используется точка с запятой (пустая инструкция).

function showOffsetPos(id) {
  let left = 0,
    top = 0;

  for (
    let itNode = document.getElementById(id); // инициализация
    itNode; // условие
    left += itNode.offsetLeft,
      top += itNode.offsetTop,
      itNode = itNode.offsetParent // финальное выражение
  ); // точка с запятой (пустая инструкция)

  console.log(
    `Смещение позиции элемента "${id}":
слева: ${left}px;
сверху: ${top}px;`,
  );
}

showOffsetPos("content");

// Выводит:
// Смещение позиции элемента "content":
// слева: 0px;
// сверху: 153px;"

Примечание: В этом случае, когда вы не используете условие внутри цикла, точка с запятой ставится сразу после выражения цикла.

Спецификации Совместимость с браузерами Смотрите также

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4