JavaScript виконання коду JavaScript підключення зовнішнього файлу JavaScript console.log JavaScript змінні і константи JavaScript типи даних JavaScript операції зі змінними JavaScript перетворення даних JavaScript масиви JavaScript умовні конструкції JavaScript цикли JavaScript функції JavaScript область видимості змінних JavaScript замикання і функції IIFE JavaScript Паттерн Модуль JavaScript рекурсивні функції JavaScript перевизначення функцій JavaScript hoisting JavaScript передача параметрів за значенням і за посиланням JavaScript стрілочні функції JavaScript ООП Object JavaScript ООП вкладені об'єкти і масиви в об'єктах JavaScript ООП перевірка наявності і перебір методів і властивостей JavaScript ООП об'єкти у функціях JavaScript ООП конструктори об'єктів JavaScript ООП розширення об'єктів. prototype JavaScript ООП інкапсуляція JavaScript ООП Функція як об'єкт. Методи call і apply JavaScript ООП спадкування JavaScript ООП Ключове слово this JavaScript ООП Object destructuring JavaScript ООП класи JavaScript ООП Date. Робота з датами JavaScript Об'єкт Math. математичні операції JavaScript Об'єкт Array. Робота з масивами JavaScript ООП об'єкт Number JavaScript String JavaScript String Об'єкт RegExp. Регулярні вирази JavaScript String Регулярні вирази в методах String JavaScript String Синтаксис регулярних виразів JavaScript Робота з браузером і BOM JavaScript діалогові вікна JavaScript Історія браузера. об'єкт history JavaScript об'єкт location JavaScript об'єкт navigator JavaScript таймери JavaScript DOM Введення JavaScript DOM Об'єкт document. Пошук елементів JavaScript DOM Властивості об'єкта document JavaScript DOM Об'єкт Node. Навігація по DOM JavaScript DOM Створення, додавання і видалення елементів веб-сторінки JavaScript DOM Об'єкт Element. управління елементами JavaScript DOM Зміна стилю елементів JavaScript події. Введення в обробку подій. JavaScript події обробники JavaScript події. об'єкт Event JavaScript події. поширення подій JavaScript події миші JavaScript події клавіатури JavaScript FORMS. Форми і їх елементи JavaScript FORMS. Кнопки JavaScript FORMS. текстові поля JavaScript FORMS. Прапорці та перемикачі JavaScript FORMS. Список select JavaScript JSON JavaScript зберігання даних. cookie JavaScript зберігання даних. Web Storage JavaScript Collection. Ітератори JavaScript Collection. Генератори JavaScript Collection. Множина Set JavaScript Collection. Map JavaScript Collection. WeakSet і WeakMap JavaScript AJAX. XMLHttpRequest JavaScript AJAX. Відправка даних JavaScript AJAX. Promise в Ajax-запитах

JavaScript цикли


цикли

Цикли дозволяють в залежності від певних умов виконувати деяку дію безліч разів . В JavaScript є такі види циклів:

  • for

  • for..in

  • for..of

  • while

  • do..while


Цикл for

Цикл for має наступне формальне визначення:

for ([ініціалізація лічильника]; [умова]; [зміна значення лічильника]){
 
    // дія

}

Наприклад, використовуємо цикл for для перебору елементів масиву:

var people = ["Tom", "Alice", "Bob", "Sam"];

for(var i = 0; i < people.length; i++){  
    console.log(people[i]);
}

Перша частина оголошення циклу - var i = 0 - створює і ініціалізує лічильник - змінну i . І перед виконанням циклу її значення дорівнює 0 . По суті це те ж саме, що і оголошення змінної.

Друга частина - умова, при якому буде виконуватися цикл. В даному випадку цикл буде виконуватися, поки значення i не досягне величини, що дорівнює довжині масиву people . Отримати довжину масиву можна за допомогою властивості length : people.length .

Третя частина - приріст лічильника на одиницю i++ .

І так як в масиві 4 елементи, то блок циклу спрацює 4 рази, поки значення i не стане рівним people.length (тобто 4 ). І кожен раз це значення буде збільшуватися на 1 . Кожне окреме повторення циклу називається ітераціею. Таким чином, в даному випадку спрацює 4 ітерації.

А за допомогою виразу people[i] ми зможемо отримати елемент масиву для його подальшого виведення в браузері.

Необов'язково збільшувати лічильник на одиницю, можна виробляти з ним інші дії, наприклад, зменшувати на одиницю:

var people = ["Tom", "Alice", "Bob", "Sam"];     // 4 елементи

for(var i = people.length - 1; i >= 0; i--){
    console.log(people[i]);
}

В даному випадку масив виводиться з кінця, а перебір масиву починається з i = 3 до i = 0 .


for..in

Цикл for..in призначений для перебору масивів і об'єктів. Його формальне визначення:

for (індекс in масив) {
    // дія
}

Наприклад, переберемо елементи масиву:

var people = ["Tom", "Alice", "Bob", "Sam"];

for(var index in people){  

    console.log(people[index]);

}

Цикл for...of

Цикл for ... of схожий на цикл for ... in і призначений для перебору колекцій, наприклад, масивів:

let users = ["Tom", "Bob", "Sam"];

for(let val of users){
    console.log(val);
}

Поточний елемент колекції users поміщається в змінну val , значення якої потім виводиться на консоль.


Цикл while

Цикл while виконується до тих пір, поки деяка умова істинна. Його формальне визначення:

while(умова){
     
    // дія

}

Знову ж виведемо за допомогою while елементи масиву:

var people = ["Tom", "Alice", "Bob", "Sam"];
var index = 0;

while(index < people.length){
     
    console.log(people[index]);
    index++;

}

Цикл while тут буде виконуватися, поки значення index не стане рівним довжині масиву.


do..while

У циклі do спочатку виконується код циклу, а потім відбувається перевірка умови в інструкції while . І поки ця умова істинна, цикл повторюється. наприклад:

var x = 1;

do{

    console.log(x * x);
    x++;

}while(x < 10)

Тут код циклу спрацює 9 разів, поки x не стане рівним 10 . При цьому цикл do гарантує хоча б одноразове виконання дій, навіть якщо умова в інструкції while НЕ була true .


Оператори continue і break

Іноді буває необхідно вийти з циклу до його завершення. У цьому випадку ми можемо скористатися оператором break :

var array = [ 1, 2, 3, 4, 5, 12, 17, 6, 7 ];

for (var i = 0; i < array.length; i++)
{
    if (array[i] > 10)   break;
        
    document.write(array[i] + "</br>");
}

Даний цикл перебирає всі елементи масиву, проте останні чотири елемента не будуть виведені в браузері, оскільки перевірка

if (array[i] > 10) перерве виконання циклу за допомогою оператора break , коли перебір масиву дійде до елемента 12 .

Якщо нам треба просто пропустити ітерацію, але не виходити з циклу, ми можемо застосовувати оператор continue :

var array = [ 1, 2, 3, 4, 5, 12, 17, 6, 7 ];

for (var i = 0; i < array.length; i++)
{
    if (array[i] > 10)        continue;

    document.write(array[i] + "</br>");

}

В цьому випадку, якщо програма зустріне в масиві число, більше 10 , то це число не буде виводитися в браузері.


Наш партнер:
beta test mp3 playlist downloader