From c058fa0fb22dc40ef0225b21a97578cddd0aaffa Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 14:51:05 +0100 Subject: unslug ru: move --- files/ru/glossary/call_stack/index.html | 102 ++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 files/ru/glossary/call_stack/index.html (limited to 'files/ru/glossary/call_stack') diff --git a/files/ru/glossary/call_stack/index.html b/files/ru/glossary/call_stack/index.html new file mode 100644 index 0000000000..04eb95fdb5 --- /dev/null +++ b/files/ru/glossary/call_stack/index.html @@ -0,0 +1,102 @@ +--- +title: Call stack +slug: Словарь/Call_stack +tags: + - Glossary +translation_of: Glossary/Call_stack +--- +

Стек вызовов(call stack) - это механизм для интерпретаторов (таких как интерпретатор JavaScript в веб-браузере) для отслеживания текущего местонахождения интерпретатора в скрипте, который вызывает  несколько функций типа {{glossary("function","functions")}}, — какая из функций выполняется на данный момент, какие функции вызываются изнутри этой (выполняемой) функции, какая будет вызвана следующей и т. д.

+ + + +

Пример

+ +

 

+ +
function greeting() {
+   // [1] Some codes here
+   sayHi();
+   // [2] Some codes here
+}
+function sayHi() {
+   return "Hi!";
+}
+
+// Invoke the `greeting` function
+greeting();
+
+// [3] Some codes here
+ +

Код выше будет выполнен следующим образом:

+ +
    +
  1. Игнорирование всех функций, пока не будет достигнуто место вызова функции greeting().
  2. +
  3. Вызывается функция greeting().
  4. +
  5. Функция "greeting" помещается в очередь стека вызовов.
  6. +
+ +
+

Очередь стека вызовов:
+ - greeting

+
+ +

 

+ +
    +
  1. Выполняется код внутри функции `greeting`.
  2. +
  3. Вызывается функция sayHi().
  4. +
  5. Функция sayHi() помещается в очередь стека вызовов.
  6. +
+ +
+

Очередь стека вызовов:
+ - greeting
+ - sayHi

+
+ +
    +
  1. Выполняется весь код внутри функции sayHi() до самого конца.
  2. +
  3. Возврат выполнения кода  с места вызова функции sayHi() и продолжение выполнения оставшегося кода функции greeting().
  4. +
  5. Выполненная функция sayHi() удаляется из очереди стека вызовов.
    + +
    +

    Очередь стека вызовов:
    + - greeting

    +
    +
  6. +
  7. Когда весь код внутри функции greeting() выполнен, происходит возврат выполнения оставшейся части основного скрипта JS с места вызова функции greeting().
  8. +
  9. Выполненная функция greeting() удаляется из очереди стека вызовов.
    + +
    +

    Очередь стека вызовов:
    + ПУСТО

    +
    +
  10. +
+ +

Выполнение кода началось с пустого стека вызовов, и всякий раз, когда мы вызывали функцию, она автоматически добавлялась в очередь стека вызовов, после выполнения всего своего кода она автоматически удалялась из очереди стека вызовов. И в конце выполнение кода также завершилось с пустым стеком вызовов.

+ +

Узнать больше

+ +

Общие знания

+ + + + -- cgit v1.2.3-54-g00ecf