--- title: Call stack (コールスタック) slug: Glossary/Call_stack tags: - Call Stack - CodingScripting - Glossary - JavaScript - コールスタック - 用語集 translation_of: Glossary/Call_stack ---
コールスタック (call stack) は、インタープリター (ウェブブラウザー内の JavaScript インタープリターなど) の仕組みの一つで、複数階層の{{glossary("function","関数")}}を呼び出したスクリプト内の位置を追跡し続けることです。 — どの関数が現在実行されているのか、その関数の中でどの関数が呼び出されたか、などです。
function greeting() {
// [1] Some code here
sayHi();
// [2] Some code here
}
function sayHi() {
return "Hi!";
}
// Invoke the `greeting` function
greeting();
// [3] Some code here
上記のコードは次のように実行されます。
greeting() 関数の呼び出しまで、すべての関数を無視する。greeting() 関数をコールスタックリストに追加する。
コールスタックリスト:
- greeting
greeting() 関数の中にあるコードのすべての行を実行する。sayHi() 関数の呼び出しまで移動する。sayHi() 関数を追加する。
コールスタックリスト:
- greeting
- sayHi
sayHi() 関数の中にあるコードのすべての行を、末尾に達するまで実行する。sayHi() を呼び出した行に戻し、 greeting() 関数の残りの実行を続ける。sayHi() 関数をコールスタックリストから削除する。
コールスタックリスト:
- greeting
greeting() 関数の中のすべてを実行したら、これを呼び出した行に戻り、残りの JavaScript コードの実行を続ける。greeting() 関数をコールスタックリストから削除する。
コールスタックリスト:
空
空のコールスタックで始め、関数を呼び出す度に、自動的にそれがコールスタックに追加され、コードをすべて実行した後、自動的にコールスタックから削除されます。最後に、またからのスタックで終了します。