86 lines
3.4 KiB
Markdown
86 lines
3.4 KiB
Markdown
---
|
||
title: For Loop
|
||
localeTitle: Для цикла
|
||
---
|
||
### Синтаксис
|
||
|
||
```javascript
|
||
for ([initialization]); [condition]; [final-expression]) {
|
||
// statement
|
||
}
|
||
```
|
||
|
||
Оператор javascript `for` состоит из трех выражений и оператора:
|
||
|
||
## Описание
|
||
|
||
* Инициализация - Запуск до первого выполнения цикла. Это выражение обычно используется для создания счетчиков. Переменные, созданные здесь, привязаны к циклу. Как только цикл завершит выполнение, они будут уничтожены.
|
||
* condition - выражение, которое проверяется перед выполнением каждой итерации. Если это опущено, это выражение оценивается как true. Если он вычисляет значение true, выполняется оператор цикла. Если он оценивает значение false, цикл останавливается.
|
||
* final-expression - выражение, которое запускается после каждой итерации. Обычно используется для увеличения счетчика. Но он также может использоваться для уменьшения счетчика.
|
||
* statement - Код, который необходимо повторить в цикле
|
||
|
||
любое из этих трех выражений или утверждение можно опустить. Для циклов обычно используются для подсчета определенного количества итераций для повторения утверждения. Используйте оператор `break` для выхода из цикла, пока выражение условия не примет значение false.
|
||
|
||
## Общие проблемы
|
||
|
||
**Превышение границ массива**
|
||
|
||
При многократном индексировании по массиву легко превзойти границы массива (например, попытайтесь ссылаться на 4-й элемент массива из 3 элементов).
|
||
|
||
```javascript
|
||
// This will cause an error.
|
||
// The bounds of the array will be exceeded.
|
||
var arr = [ 1, 2, 3 ];
|
||
for (var i = 0; i <= arr.length; i++) {
|
||
console.log(arr[i]);
|
||
}
|
||
|
||
output:
|
||
1
|
||
2
|
||
3
|
||
undefined
|
||
```
|
||
|
||
Есть два способа исправить этот код. Задайте условие либо `i < arr.length` либо `i <= arr.length - 1`
|
||
|
||
### Примеры
|
||
|
||
Итерации через целые числа от 0 до 8
|
||
|
||
```javascript
|
||
for (var i = 0; i < 9; i++) {
|
||
console.log(i);
|
||
}
|
||
|
||
output:
|
||
0
|
||
1
|
||
2
|
||
3
|
||
4
|
||
5
|
||
6
|
||
7
|
||
8
|
||
```
|
||
|
||
Вырыв из цикла до выражения условия false
|
||
|
||
```javascript
|
||
for (var elephant = 1; elephant < 10; elephant+=2) {
|
||
if (elephant === 7) {
|
||
break;
|
||
}
|
||
console.info('elephant is ' + elephant);
|
||
}
|
||
|
||
output:
|
||
elephant is 1
|
||
elephant is 3
|
||
elephant is 5
|
||
```
|
||
|
||
### Другие источники
|
||
|
||
* [MDN - для заявлений](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for) |