●キュー
データ構造の一つ「先に追加したものが先に取り出される」処理をする。
配列のpush/shiftはキューを実現している

●コールスタックとは
後に追加しものが、先に取り出される。
本を積みあげるイメージ=>上に積んだものから取り上げる

●同期関数と非同期関数
・同期関数=>スタックに積まれて一連の処理が終わるまで残る
・非同期関数=>スタックに詰まれったら、すぐにスタックから取り除かれる
(setTimeout()など)
非同期関数は、スタックの裏側で処理を継続する

setTimeout(コールバック関数,3000);
スタックに積まれてすぐにスタック外へ=>スタック外で3秒カウント
=>3秒後にコールバック関数がキューに積まれる
=> スタックが空のときに、キューの中の関数が取り出される

◆キューの中にあるタスク(コールバック関数)はスタックが空のときに
先頭から一つずつ取り出される。
取り出されたタスク(コールバック関数)はスタックに積まれる。

●setTimeout()
=>非同期メソッド。コールバック関数を引数に受け取る。

setTimeout(コールバック関数, ミリ秒);

//第二引数にセットした「ミリ秒」が経過したら、
//第一引数にセットした「コールバック関数」を実行する
1000ミリ秒 === 1秒
5000ミリ秒 === 5秒

非同期関数に「0ミリ秒」をセットした場合
=>スタックに積まれてスタックの裏側へ取り出される。
=>0ミリ秒後にキューに積まれる => スタックが空になったらキューの先頭から取り出される。
〇まずはコードの一連の流れを処理する
※なので、「0ミリ秒」をセットしてもすぐには処理されない。

カテゴリー: Javascript/jQuery

choco

マンガ、ゲーム、昼寝、料理、DIY、動物大好きな 平成生まれのアラサーです。 販売、サービス業しか経験ありませんが、 SE目指して勉強してます。 年齢はギリアウトだし、未経験ですが、 やるだけやって、チャレンジー

コメントを残す