JavaScript
  • 🧑‍💻Full-Stack Web Developer
  • 📚Теорія
    • 1️⃣Змінні і типи
      • Знайомство з JavaScript
      • Інструменти розробника
      • Підключення скрипту
      • Основи синтаксису
      • Змінні і типи
      • Взаємодія з користувачем
      • Основні оператори
      • Числа
      • Рядки
      • Логічні операції
    • 2️⃣Розгалудження і цикли
      • Розгалуження
      • Тернарний оператор
      • Інструкція switch
      • Область видимості
      • Цикли
    • 3️⃣Масиви
      • Масиви
      • Ітерація по масиву
      • Присвоєння за посиланням і значенням
      • Методи масиву
    • 4️⃣Функції
      • Функції
      • Стек викликів
    • 5️⃣Обʼєкти
      • Обʼєкти
      • Перебирання обʼєкта
      • Масив обʼєктів
      • Операції spread і rest
      • Деструктуризація обʼєктів
      • Деструктуризація масивів
      • Паттерн "обʼєкт параметрів"
    • 6️⃣Колбек-функції, стрілкові функції, перебір масиву
      • Колбек-функції
      • Метод forEach
      • Стрілкові функції
      • Підходи до написання коду
      • Чисті функції
    • 7️⃣Перебираючі методи масивів
      • Перебираючі методи масиву
      • Метод map()
      • Метод flatMap()
      • Метод filter()
      • Метод find()
      • Метод findIndex()
      • Методи every() і some()
      • Метод reduce()
      • Метод sort()
      • Ланцюжки методів
    • 8️⃣Контекст, прототипи та класи
      • Контекст виконання функції
      • Правила визначення this
      • Методи функцій
      • Об'єктно-орієнтоване програмування
      • Прототипне наслідування
    • Класи
  • 👷Практика
    • 👷Практика
    • Page 1
  • Про мене
    • Про мене
Powered by GitBook
On this page
  1. Теорія
  2. Функції

Стек викликів

Стек викликів (або call stack) є одним з ключових понять у виконанні JavaScript та інших мов програмування. Він представляє собою структуру даних, що використовується для відстеження порядку викликів функцій в програмі.

Коли функція викликається, новий запис (фрейм стеку) додається до вершини стеку, представляючи контекст виклику цієї функції. Коли функція завершує своє виконання, відповідний фрейм стеку видаляється, і контроль повертається до контексту попереднього виклику.

Цей процес використовується для відстеження послідовності виконання функцій і дозволяє JavaScript виконувати операції в стекоподібний спосіб, забезпечуючи правильний порядок викликів функцій.

function a() {
    console.log('a викликає b');
    b();
    console.log('a завершує роботу');
}

function b() {
    console.log('b викликає c');
    c();
    console.log('b завершує роботу');
}

function c() {
    console.log('c завершує роботу');
}

a(); // Викликаємо функцію a

Під час виконання функції a, викликаються функції b та c. Порядок викликів відображається у стеку викликів:

  1. a() - стек викликів: a

  2. b() - стек викликів: a -> b

  3. c() - стек викликів: a -> b -> c

  4. Після завершення c() видаляється зі стеку, потім b(), і, нарешті, a().

JavaScript використовує стек викликів для керування викликами функцій, зберігаючи контексти викликів і відслідковуючи порядок їх виконання.

Покликання:

PreviousФункціїNextОбʼєкти

Last updated 1 year ago

📚
4️⃣
Візуалізатор стеку викликів 1
Візуалізатор стеку викликів 2
Про стек викликів