JavaScriptをやっている絵

【JavaScript】JavaScript文脈の「stack overflow」とは([JavaScript] What is “stack overflow” in JavaScript context?)

【JavaScript】JavaScript文脈の「stack overflow」とは([JavaScript] What is "stack overflow" in JavaScript context?)

あっかいやつ。ブラウザ閉じる奴

stackについて調べていたらstack overflowという言葉に出会しました。
ぼんやり知っていたのですが、今回改めて深く理解しようと努めました。
「stack overflow」という名前はプログラマーの質問投稿サービスが一番最初に思いつきます。
JavaScript文脈でそれを検索しようとすると、全然辿りつきません。
全てサービス名のStack overflowなのです。

そんなたくさんの落ち葉の中から見つけた一つの三つ葉がこちらです

When I was researching stack, I came across the word stack overflow.
I knew it vaguely, but this time I tried to gain a deeper understanding.
The name "stack overflow" comes first from the programmer's question posting service.
When I try to search for it in the JavaScript context, I can't reach it at all.
All of them are Stack overflow of service name.

Here is one of the three leaves that I found among such many fallen leaves.

If the stack takes up more space than it had assigned to it, it results in a "stack overflow" error.

https://developer.mozilla.org/en-US/docs/Glossary/Call_stack

まずStack Callから

コールスタックは、複数呼び出すスクリプトにその場所を追跡する(WebブラウザでJavaScriptインタープリタのような)インタプリタのための仕組みである機能を現在実行し、どのような機能をなど、その関数内から呼び出されているものの機能- 。

スクリプトが関数を呼び出すと、インタープリターはそれを呼び出しスタックに追加し、関数の実行を開始します。
その関数によって呼び出された関数はすべて呼び出しスタックに追加され、呼び出しが到達した場所で実行されます。
現在の関数が終了すると、インタプリタはそれをスタックから取り出し、最後のコードリストで中断したところから実行を再開します。
スタックが割り当てられていたよりも多くのスペースを占める場合、「スタックオーバーフロー」エラーが発生します。

上記ページの意訳です

ブラウザごとに定義されている最大コールスタック数を超えたとき、エラーが出る

関数から関数を呼び出している状態が続く。再帰的な呼び出し状態のとき。
ループしているときにでる

// Uncaught RangeError: Maximum call stack size exceeded
// InternalError: too much recursion

実際出したコードはこちら(Example stack overflow)

console.logを確認してください

このようになっています

あっかいやつ。ブラウザ閉じる奴
    var i = 0;
    function recurse() {
      i++;
      recurse();
    }
    recurse();

呼び出し元の関数を中で呼びました。

まとめ

stack overflowは簡単に言うと、

わたし(ブラウザ)は
「もうそれ以上一気に食べれない」
というイメージです

もしくは

調べ物を調べていたらさらに知らない言葉が出てきて、それを調べていたらさらに知らない言葉が出てきてそれを調べていたら....

では~


「武骨日記の」プライバシーポリシーに関して
プライバシーポリシー
個人情報取り扱いに関して

サイトTOP
私は何者か
29歳よしもと芸人がWebデザイナー未経験で学校に通い5年後フリーランスのフロントエンドエンジニアになるためにやった9つのこと
フロント記事
フロントエンドエンジニア
フロントエンド記事(タグ)
TypeScript
TypeScript練習問題集
【TypeScript】TypeSript中級者になる為に知っておくと良い108個のこと
JavaScript練習問題
styled-componentsの使い方
SCSS問題集
GraphQL「Apollo x Relay-Style-Cursor-Pagination(リレースタイルカーソルページネーション)」
recomposeと仲良くなりたい
機動戦士FlowType
初めてReactNativeWebを触ってみて
Ramda.jsシグネチャの読み方
環境変数の話
いちごタルトの作り方
フロントエンドエンジニア豚汁の作り方


「武骨日記の」プライバシーポリシーに関して
プライバシーポリシー

株式会社TerraceTechについて
最近起業しました。
株式会社TerraceTech

SNS
しずかなインターネット kenjimorita
インド旅 instagram
適当な日常写真 instagram
シュールさーん instagram
シュールさーん LINEスタンプ
もりたけんじTwitter
ネタ帳Twitter
note

FaceBook -kennji.morita-

わたしが結成しているWebチームではWeb未経験者、フリーランスの方へのお仕事を紹介しています。
また個人レッスンしてほしい生徒も募集中です。
もしご興味ある方はチャットからご連絡ください。

※業務連絡やお久しぶり連絡もチャットからお願いします。