ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript は同期ですか、それとも非同期ですか? また、シングルスレッドですか、それともマルチスレッドですか? JavaScript コードはどのように実行されるのでしょうか?
JavaScript は、一度に 1 つのコマンドのみを実行できる同期シングルスレッド言語です。現在の行の実行が終了した後にのみ、次の行に移動します。ただし、JavaScript はイベント ループ、Promises、Async/Await、コールバック キューを使用して非同期操作を実行できます (JavaScript はデフォルトで同期です)。
JavaScript コードはどのように実行されますか?
JavaScript のすべては実行コンテキスト内で発生します (大きなボックスまたはコンテナーと考えてください)。 JavaScript コード全体がこの実行コンテキスト内で実行されます。これには、メモリ コンポーネント (変数環境) とコード コンポーネント (実行スレッド) の 2 つのコンポーネントがあります。
まず、グローバル実行コンテキストが作成されます。この中で、各関数は独自の実行コンテキストを作成します。
コード行が実行される前に、すべての変数と関数にメモリが割り当てられます。
メモリ割り当て後にコードはどのように実行されるのでしょうか?
JavaScript エンジンはプログラム全体を再度 (1 行ずつ) 実行し、コードを実行します。
次の例を見てみましょう:
function add(a,b){ var ans = a+b; console.log(ans); } var addition = add(6,5);
この例では、最初にグローバル実行コンテキストが作成されます。これは、メモリ コンポーネント (MC) とコード コンポーネント (CC) の 2 つのコンポーネントで構成されます。
関数の場合、関数コード全体がメモリに保存されます。変数の場合、最初は特別な値 (未定義) が格納されます。
関数が呼び出されると、別の実行コンテキストが作成されます。メモリ コンポーネントにはパラメータの値 (a = 6、b = 5) が格納されますが、ans などの変数は最初は未定義の値を保持します。コード コンポーネントでは、メモリ コンポーネントの値を使用して演算が実行されます (a + b = 6 + 5 = 11)。結果はコンソールに出力されます。
この説明で概念が明確になることを願っています。ご質問や修正がございましたら、お気軽にコメント欄にお問い合わせください。
Akshay Saini のクレジット (参照:[(https://youtu.be/iLWTnMzWtj4?si=WWMxDHM-v532vY7F)])
以上がJavaScript は同期ですか、それとも非同期ですか? また、シングルスレッドですか、それともマルチスレッドですか? JavaScript コードはどのように実行されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。