87 lines
3.4 KiB
Markdown
87 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)
|