ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript は同期ですか、それとも非同期ですか? また、シングルスレッドですか、それともマルチスレッドですか? JavaScript コードはどのように実行されるのでしょうか?

JavaScript は同期ですか、それとも非同期ですか? また、シングルスレッドですか、それともマルチスレッドですか? JavaScript コードはどのように実行されるのでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-09-25 06:20:32926ブラウズ

JavaScript は、一度に 1 つのコマンドのみを実行できる同期シングルスレッド言語です。現在の行の実行が終了した後にのみ、次の行に移動します。ただし、JavaScript はイベント ループ、Promises、Async/Await、コールバック キューを使用して非同期操作を実行できます (JavaScript はデフォルトで同期です)。

JavaScript コードはどのように実行されますか?

JavaScript のすべては実行コンテキスト内で発生します (大きなボックスまたはコンテナーと考え​​てください)。 JavaScript コード全体がこの実行コンテキスト内で実行されます。これには、メモリ コンポーネント (変数環境) とコード コンポーネント (実行スレッド) の 2 つのコンポーネントがあります。

  • メモリ コンポーネント: ここに、すべての変数と関数がキーと値のペアとして保存されます。
  • コード コンポーネント: ここでコードが実行されます (一度に 1 行ずつ)。"

まず、グローバル実行コンテキストが作成されます。この中で、各関数は独自の実行コンテキストを作成します。

コード行が実行される前に、すべての変数と関数にメモリが割り当てられます。

メモリ割り当て後にコードはどのように実行されるのでしょうか?
JavaScript エンジンはプログラム全体を再度 (1 行ずつ) 実行し、コードを実行します。

次の例を見てみましょう:

function add(a,b){
   var ans = a+b;
   console.log(ans);
}
var addition = add(6,5);

この例では、最初にグローバル実行コンテキストが作成されます。これは、メモリ コンポーネント (MC) とコード コンポーネント (CC) の 2 つのコンポーネントで構成されます。

Is JavaScript synchronous or asynchronous, and is it single-threaded or multi-threaded? How is JavaScript code executed?

関数の場合、関数コード全体がメモリに保存されます。変数の場合、最初は特別な値 (未定義) が格納されます。

Is JavaScript synchronous or asynchronous, and is it single-threaded or multi-threaded? How is JavaScript code executed?

関数が呼び出されると、別の実行コンテキストが作成されます。メモリ コンポーネントにはパラメータの値 (a = 6、b = 5) が格納されますが、ans などの変数は最初は未定義の値を保持します。コード コンポーネントでは、メモリ コンポーネントの値を使用して演算が実行されます (a + b = 6 + 5 = 11)。結果はコンソールに出力されます。

この説明で概念が明確になることを願っています。ご質問や修正がございましたら、お気軽にコメント欄にお問い合わせください。

Akshay Saini のクレジット (参照:[(https://youtu.be/iLWTnMzWtj4?si=WWMxDHM-v532vY7F)])

以上がJavaScript は同期ですか、それとも非同期ですか? また、シングルスレッドですか、それともマルチスレッドですか? JavaScript コードはどのように実行されるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。