From da78a9e329e272dedb2400b79a3bdeebff387d47 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:17 -0500 Subject: initial commit --- files/ko/glossary/call_stack/index.html | 84 +++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 files/ko/glossary/call_stack/index.html (limited to 'files/ko/glossary/call_stack') diff --git a/files/ko/glossary/call_stack/index.html b/files/ko/glossary/call_stack/index.html new file mode 100644 index 0000000000..40ab2f4c99 --- /dev/null +++ b/files/ko/glossary/call_stack/index.html @@ -0,0 +1,84 @@ +--- +title: 호출 스택 +slug: Glossary/Call_stack +tags: + - Glossary + - JavaScript + - 호출 스택 +translation_of: Glossary/Call_stack +--- +

호출 스택은 여러 함수들({{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() 함수를 호출 스택 리스트에 추가합니다.
    + +
    +

    호출 스택 리스트:
    + - greeting

    +
    +
  6. +
  7. `greeting` 함수 내부의 모든 코드를 실행합니다.
  8. +
  9. sayHi() 함수를 얻습니다.
  10. +
  11. sayHi() 함수를 호출 스택 리스트에 추가합니다.
    + +
    +

    호출 스택 리스트:
    + - greeting
    + - sayHi

    +
    +
  12. +
  13. sayHi() 함수의 끝에 도달할 때까지, 함수 내부의 모든 코드를 실행합니다.
  14. +
  15. sayHi() 가 호출된 라인으로 돌아와 greeting() 함수의 나머지를 계속 실행합니다.
  16. +
  17. 호출 스택 리스트에서 sayHi() 함수를 제거합니다.
    + +
    +

    호출 스택 리스트:
    + - greeting

    +
    +
  18. +
  19. greeting() 함수 내부의 모든 코드가 실행되었을 때, 이를 호출한 라인으로 돌아와 JS 코드의 나머지를 계속 실행합니다.
  20. +
  21. 호출 스택 리스트에서 greeting() 함수를 제거합니다.
    + +
    +

    호출 스택 리스트:
    + EMPTY

    +
    +
  22. +
+ +

우리는 빈 호출 스택으로 시작하며, 함수를 호출할 때마다 자동으로 호출 스택에 추가되고, 해당 코드가 모두 실행된 후, 호출 스택에서 자동으로 제거됩니다. 결국, 마찬가지로 빈 호출 스택으로 끝납니다.

+ +

더 알아보기

+ +

일반 지식

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