aboutsummaryrefslogtreecommitdiff
path: root/files/ja/glossary/call_stack/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ja/glossary/call_stack/index.html')
-rw-r--r--files/ja/glossary/call_stack/index.html94
1 files changed, 94 insertions, 0 deletions
diff --git a/files/ja/glossary/call_stack/index.html b/files/ja/glossary/call_stack/index.html
new file mode 100644
index 0000000000..cc188a1e09
--- /dev/null
+++ b/files/ja/glossary/call_stack/index.html
@@ -0,0 +1,94 @@
+---
+title: Call stack (コールスタック)
+slug: Glossary/Call_stack
+tags:
+ - CodingScripting
+ - Glossary
+ - JavaScript
+ - コールスタック
+ - 用語集
+translation_of: Glossary/Call_stack
+---
+<p><ruby><strong>コールスタック</strong><rp> (</rp><rt>call stack</rt><rp>) </rp></ruby>は、インタープリター (ウェブブラウザー内の JavaScript インタープリターなど) の仕組みの一つで、複数階層の{{glossary("function","関数")}}を呼び出したスクリプト内の位置を追跡し続けることです。 — どの関数が現在実行されているのか、その関数の中でどの関数が呼び出されたか、などです。</p>
+
+<ul>
+ <li>スクリプトが関数を呼び出すとき、インタープリターはそれをコールスタックに追加し、それから関数の実行を始めます。</li>
+ <li>その関数から呼び出されたどの関数も、コールスタックのその上に追加され、呼び出し先を実行します。</li>
+ <li>現在の関数が終了すると、インタープリターはスタックからそれを外し、最後のコードがリストされている場所から実行を再開します。</li>
+ <li>スタックが割り当てられている量よりも多くのスペースを使用した場合、 "stack overflow" エラーとなります。</li>
+</ul>
+
+<h2 id="Example" name="Example">例</h2>
+
+<pre class="brush: js">function greeting() {
+ // [1] Some codes here
+ sayHi();
+ // [2] Some codes here
+}
+function sayHi() {
+ return "Hi!";
+}
+
+// Invoke the `greeting` function
+greeting();
+
+// [3] Some codes here
+</pre>
+
+<p>上記のコードは次のように実行されます。</p>
+
+<ol>
+ <li><code>greeting()</code> 関数の呼び出しまで、すべての関数を無視する。</li>
+ <li><code>greeting()</code> 関数をコールスタックリストに追加する。
+ <div class="note">
+ <p>コールスタックリスト:<br>
+ - greeting</p>
+ </div>
+ </li>
+ <li><code>greeting()</code> 関数の中にあるコードのすべての行を実行する。</li>
+ <li><code>sayHi()</code> 関数の呼び出しまで移動する。</li>
+ <li>コールスタックリストに <code>sayHi()</code> 関数を追加する。
+ <div class="note">
+ <p>コールスタックリスト:<br>
+ - greeting<br>
+ - sayHi</p>
+ </div>
+ </li>
+ <li><code>sayHi()</code> 関数の中にあるコードのすべての行を、末尾に達するまで実行する。</li>
+ <li>実行を <code>sayHi()</code> を呼び出した行に戻し、 <code>greeting()</code> 関数の残りの実行を続ける。</li>
+ <li><code>sayHi()</code> 関数をコールスタックリストから削除する。
+ <div class="note">
+ <p>コールスタックリスト:<br>
+ - greeting</p>
+ </div>
+ </li>
+ <li><code>greeting()</code> 関数の中のすべてを実行したら、これを呼び出した行に戻り、残りの JavaScript コードの実行を続ける。</li>
+ <li><code>greeting()</code> 関数をコールスタックリストから削除する。
+ <div class="note">
+ <p>コールスタックリスト:<br>
+ 空</p>
+ </div>
+ </li>
+</ol>
+
+<p>空のコールスタックで始め、関数を呼び出す度に、自動的にそれがコールスタックに追加され、コードをすべて実行した後、自動的にコールスタックから削除されます。最後に、またからのスタックで終了します。</p>
+
+<h2 id="Learn_more" name="Learn_more">より詳しく知る</h2>
+
+<h3 id="General_knowledge" name="General_knowledge">一般知識</h3>
+
+<ul>
+ <li>ウィキペディアの{{Interwiki("wikipedia", "コールスタック")}}</li>
+</ul>
+
+<section class="Quick_links" id="Quick_Links">
+<ul>
+ <li><a href="/ja/docs/Glossary">MDN Web Docs 用語集</a>
+
+ <ul>
+ <li>{{Glossary("Call stack", "コールスタック")}}</li>
+ <li>{{Glossary("Function", "関数")}}</li>
+ </ul>
+ </li>
+</ul>
+</section>