実行のスレッド - 一度に 1 つのこと


OK、あなたはプログラミング言語を学び始めたばかりで、JavaScript に夢中になりました.しかし、あなたはまだコードに苦労しているようですか?目標を達成するまで、さまざまなシナリオを推測しますか?

心配しないでください、これは正常です.この努力をしているのはあなただけではありません.

でも、私はあなたを助けたい.そのため、コードをより細かく制御できます. 「ボンネットの下」で何が起こっているかについての理解を深めます.

ひとときのひとこと



コードをより詳細に制御するために最初に理解する必要があるのは、Thread of Execution (TE) の役割を理解することです.

設計上、JavaScript は一度に 1 つのこと (シングル スレッド) を特定の順序 (上から下) で実行するように作成されました.行ごとに実行する責任があるのは TE です.

「なるほど、でも実行ってどういう意味ですか?」と聞かれるかもしれません.例を見てみましょう.



次の JavaScript コードを書いたとします.

const author = 'Leo'

function validateAuthor(author) {
if(author === 'Spock') {
return true
}
return false
}

validateAuthor(author)



それでは、詳しく見ていきましょう:

1-すべての定数はどこに行ったのですか?


const author = 'Leo'


ここでは、author という名前の定数を宣言しており、値 'Leo' を割り当てています.

それだけではありません.この定数もメモリに保存しました.これは、変数 author を使用するだけで、値「Leo」にアクセスできることを意味します.

2-「じっと座って評価してください...」


function validateAuthor(author) {
if(author === 'Spock') {
return true
}
return false
}



Functions は、タスクを実行したり、値を計算したりする一連のステートメントです.

ただし、この関数はまだ実行していないことに注意してください.
関数を実行するには、「()」を使用する必要があります.

今のところ、TE はこのブロック全体をメモリに格納するだけです.そして、上で見たように、後でそれを使用できるようにします.

3-「電話して」


validateAuthor(author)



最後に、関数を呼び出し/実行しています. TE は使用するラベルをチェックし、メモリを調べて実行します.

それだけではありません.括弧内のラベルの作成者を参照してください.これは、既にメモリに格納されているラベル author('Leo') の値を関数のパラメーターとして使用することを意味します.

したがって、値「Leo」を取得し、文字列が「Spock」と等しいかどうかを確認します.

それでおしまい.

練習!



もちろん、これは単純な例です.ただし、コードがどのように実行されるかについてある程度理解することは重要です.推測するのをやめて、それと格闘します.

そして、それを改善する唯一の方法は、練習です.したがって、自分自身または友人に、自分が書いたコードがどのように実行されるかを説明してみてください.

その後、私が言っている「記憶」などの検索を開始できます. Curiosity は私たち開発者にとって素晴らしいツールです.

それでは、次の JS トピックまで!