国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
キーポイント
半inteLoop
のその後に
イベントループステージ
段階ごとのデモンストレーション
node.jsには、V8 JavaScriptエンジンとLibuvの2つの主要な部分があります。ファイルI/O、DNSクエリ、およびネットワークI/Oは、LIBUVを介して実行されます。
ホームページ ウェブフロントエンド jsチュートリアル node.jsイベントループ:概念とコードの開発者のガイド

node.jsイベントループ:概念とコードの開発者のガイド

Feb 12, 2025 am 08:36 AM

Node.jsの非同期プログラミング:イベントループの詳細(xì)な理解

The Node.js Event Loop: A Developer's Guide to Concepts & Code

非同期プログラミングは、どのプログラミング言語でも非常に困難です。並行性、並列性、デッドロックなどの概念は、最も経験豊富なエンジニアでさえトリッキーになります。非同期に実行されたコードは、予測が困難であり、バグがある場合に追跡するのが困難です。ただし、最新のコンピューティングにはマルチコアプロセッサがあるため、この問題は避けられません。各CPUコアには獨自の熱制限があり、シングルコアのパフォーマンス改善がボトルネックに達(dá)しました。これにより、開発者は効率的なコードを作成し、ハードウェアリソースを最大限に活用するようになります。

javascriptはシングルスレッドですが、これにより、node.jsが最新のアーキテクチャを活用する能力が制限されますか?最大の課題の1つは、マルチスレッドの固有の複雑さに対処することです。新しいスレッドを作成し、スレッド間のコンテキストの切り替えを管理するのは高価です。オペレーティングシステムとプログラマーの両方が、多數(shù)のエッジケースを処理するソリューションを提供するために多くの努力が必要です。この記事では、node.jsがイベントループを介してこの問題を解決する方法を説明し、node.jsイベントループのさまざまな側(cè)面を調(diào)査し、それがどのように機(jī)能するかを示します。イベントループは、Node.jsのキラー機(jī)能の1つです。これは、まったく新しい方法でこのトリッキーな問題を解決するためです。

キーポイント

  • node.jsイベントループは、各タスクが完了するのを待たずに複數(shù)のタスクを効率的に処理できるようにする、単一スレッド、非ブロッキング、非同期の同時ループです。これにより、複數(shù)のWebリクエストを同時に処理できます。
  • イベントループはセミインフィニットです。つまり、コールスタックまたはコールバックキューが空である場合に終了できます。このループは、著信接続からコールバックを取得するためにオペレーティングシステムに投票する責(zé)任があります。
  • イベントループは複數(shù)の段階で実行されます:タイムスタンプの更新、ループアクティビティチェック、タイマーの実行、保留中のコールバック実行、アイドルハンドラーの実行、セットメディートコールバック実行のためのハンドルの準(zhǔn)備、ポーリングタイムアウトの計算、I/Oのブロック、コールバックの実行、チェックハンドル、クローズコールバックの実行、および繰り返しの終了。
  • node.jsは、V8 JavaScriptエンジンとLibuvの2つの主要な部分を利用しています。ネットワークI/O、ファイルI/O、およびDNSクエリは、LIBUVを介して実行されます。スレッドプール內(nèi)のこれらのタスクで利用可能なスレッドの數(shù)は限られており、uv_threadpool_size環(huán)境変數(shù)を介して設(shè)定できます。
  • 各段階の終わりに、ループはプロセスを?qū)g行します。nexttick()コールバックは、各段階の終わりに実行されるため、イベントループの一部ではありません。 Setimmediate()コールバックはイベントループ全體の一部であるため、名前が示すようにすぐに実行されません。通常、Setimmediate()を使用することをお勧めします。
イベントループとは何ですか?

イベントループは、シングルスレッド、非ブロッキング、非同期の同時ループです。コンピューターサイエンスの學(xué)位のない人の場合、データベースの検索を?qū)g行するWebリクエストを想像してください。単一のスレッドは、一度に1つの操作のみを?qū)g行できます。データベースが応答するのを待つ代わりに、キュー內(nèi)の他のタスクを処理し続けます。イベントループでは、メインループがコールスタックを展開し、コールバックを待ちません。ループはブロックされないため、複數(shù)のWeb要求を同時に処理できます。複數(shù)のリクエストを同時にキューにすることができ、それらを同時にすることができます。ループは、要求のすべての操作が完了するのを待つのではなく、ブロックせずにコールバックが発生する順序に従って処理されます。

ループ自體は半無効です。つまり、コールスタックまたはコールバックキューが空である場合、ループを終了できます。コールスタックは、Console.logなどの同期コードと見なすことができます。 node.jsは、下にあるLibuvを使用して、著信接続からのコールバックのオペレーティングシステムを投票します。

イベントループが単一のスレッドで実行される理由は疑問に思うかもしれません。スレッドは、各接続に必要なデータのメモリが比較的重いです。スレッドは、開始する必要があるオペレーティングシステムリソースであり、數(shù)千のアクティブな接続に拡張することはできません。

通常、マルチスレッドは狀況を複雑にする可能性があります。コールバックがデータを返す場合、実行中のスレッドにコンテキストを元に戻す必要があります。コールスタックやローカル変數(shù)など、現(xiàn)在の狀態(tài)を同期する必要があるため、スレッド間のコンテキストの切り替えは遅くなります。イベントループは、単一のスレッドであるため、複數(shù)のスレッドがリソースを共有する場合、バグを回避できます。シングルスレッドループは、スレッドセーフエッジケースを減らし、より高速なコンテキストスイッチングを可能にします。これは、ループの背後にある本當(dāng)の天才です。スケーラビリティを維持しながら、接続とスレッドを効果的に利用します。

理論では、コードがどのように見えるかを見てみましょう。好きなようにREPLで実行するか、ソースコードをダウンロードできます。

半inteLoop

イベントループが答えなければならない最大の質(zhì)問は、ループがアクティブであるかどうかです。その場合は、コールバックキューを待つ時間を決定します。各反復(fù)で、ループはコールスタックとポーリングを拡張します。

これはメインループをブロックする例です:

setTimeout(
  () => console.log('Hi from the callback queue'),
  5000); // 保持循環(huán)活動這么長時間

const stopTime = Date.now() + 2000;
while (Date.now() < stopTime) {}
このコードを?qū)g行する場合は、ループが2秒間ブロックされていることに注意してください。ただし、5秒後にコールバックが実行されるまでループはアクティブのままです。メインループがブロックされていないと、ポーリングメカニズムがコールバックを待つ時間を決定します。このループは、コールスタックが展開すると終了し、コールバックが殘っていません。

コールバックキュー

さて、メインループをブロックしてからコールバックをスケジュールするとどうなりますか?ループがブロックされたら、キューにコールバックを追加することはありません:

const stopTime = Date.now() + 2000;
while (Date.now() < stopTime) {}
// 這需要 7 秒才能執(zhí)行
setTimeout(() => console.log('Ran callback A'), 5000);
このサイクルは7秒間アクティブなままです。イベントループは、シンプルさの點で愚かです。將來何が列に並んでいるのかを知る方法はありません。実際のシステムでは、メインループをポーリングできるときに、著信コールバックがキューに登録され、実行されます。イベントループは、ブロック解除時にいくつかの段階を順番に通過します。そのため、ループに関するインタビューで目立つように、「イベントランチャー」や「リアクターモード」などの派手な用語を避けてください。シンプルなシングルスレッドループ、同時および非ブロッキングです。

ASYNC/WAITを使用したイベントループ メインループのブロックを避けるために、1つのアイデアは、同期I/Oを非同期/async/awaitで巻くことです。

待ち望んだ後に表示されるものはすべて、コールバックキューから來ます。コードは同期ブロッキングコードのように見えますが、ブロックしません。 Async/async/awaitは、メインループから削除するReadFilesYnc A

のその後に

になることに注意してください。待っている後に表示されるものはすべて、コールバックを介して非ブロッキング操作と見なすことができます。

完全な開示:上記のコードは、デモンストレーションのみを目的としています。実際のコードでは、fs.readfileを使用することをお勧めします。これは、約束に巻き込まれるコールバックをトリガーすることをお勧めします。これにより、メインループからのI/O除去がブロックされるため、全體的な意図は有効です。
const fs = require('fs');
const readFileSync = async (path) => await fs.readFileSync(path);

readFileSync('readme.md').then((data) => console.log(data));
console.log('The event loop continues without blocking...');

さらに一歩進(jìn)んでください イベントループは、コールスタックやコールバックキューだけではないことをお知らせした場合はどうなりますか?イベントループが1つのループだけでなく、複數(shù)のループである場合はどうなりますか?下部に複數(shù)のスレッドがある場合はどうなりますか?

さて、私はあなたをnode.jsに深く連れて行きたいです

イベントループステージ

これらは、イベントループフェーズです:

The Node.js Event Loop: A Developer's Guide to Concepts & Code

畫像出典:libuv document

  1. タイムスタンプを更新します。イベントループは、頻繁な時間関連システム呼び出しを避けるために、ループの開始時に現(xiàn)在の時間をキャッシュします。これらのシステム呼び出しは、Libuvへの內(nèi)部呼び出しです。
  2. ループはアクティブですか?ループにアクティブなハンドル、アクティブなリクエスト、または閉じたハンドルがある場合、アクティブです。示されているように、キュー內(nèi)の保留中のコールバックは、ループをアクティブに保ちます。
  3. 有効期限タイマーを?qū)g行します。これは、SettimeOutまたはSetIntervalのコールバックが実行される場所です。 cachedNowを確認(rèn)するためのループは、期限切れのアクティブコールバックを?qū)g行できるようにします。
  4. キューで保留中のコールバックを?qū)g行します。以前の反復(fù)によりコールバックが遅れた場合、これらのコールバックはこの時點で実行されます。ポーリングは通常、例外を除いて、すぐにI/Oコールバックを?qū)g行します。このステップは、最後の反復(fù)から遅れたコールバックを処理します。
  5. アイドルハンドラーを?qū)g行します。主に、これらのハンドラーがすべての反復(fù)で実行され、Libuvの內(nèi)部ハンドラーであるため、主に不適切な命名のためです。
  6. ループイテレーションでセットメディートコールバックにハンドルを?qū)g行する準(zhǔn)備をします。これらのハンドルは、ループがI/Oをブロックする前に実行され、このコールバックタイプのキューを準(zhǔn)備します。
  7. ポーリングタイムアウトを計算します。ループは、いつI/Oをブロックするかを知る必要があります。これは、タイムアウトの計算方法です:
    • ループが終了しようとしている場合、タイムアウトは0です。
    • アクティブなハンドルまたはリクエストがない場合、タイムアウトは0です。
    • フリーハンドルがある場合、タイムアウトは0です。
    • キューに保留中のハンドルがある場合、タイムアウトは0です。
    • 閉じているハンドルがある場合、タイムアウトは0です。
    • 上記のいずれもない場合、タイムアウトは最も近いタイマーに設(shè)定され、アクティブなタイマーがない場合、
    • infiniteです。
    前のステージブロックI/Oの期間をサイクリングします。キュー內(nèi)のI/O関連のコールバックはここで実行されます。
  8. チェックハンドルコールバックを?qū)g行します。この段階は、ハンドルを準(zhǔn)備するための対応する段階であるSetimmediate実行の段階です。 i/oコールバック実行中にキューに掲載されたSetimmediateコールバックは、ここで実行されます。
  9. クローズドコールバックを?qū)g行します。これらは、閉じた接続から解放されたアクティブなハンドルです。
  10. 反復(fù)は終了します。
  11. ノンブロッキングが必要なのに、なぜポーリングがI/Oをブロックするのか疑問に思うかもしれません。キューに保留中のコールバックがなく、コールスタックが空になっている場合にのみ、ループがブロックされます。 node.jsでは、最も近いタイマーは、たとえばSettimeoutを介して設(shè)定できます。無限に設(shè)定すると、ループは著信接続がより多くの作業(yè)を行うのを待ちます。これは、ポーリングが殘りの作業(yè)がなく、アクティブな接続がある場合にループをアクティブに保つため、半無効ループです。

以下は、このタイムアウト計算のUNIXバージョンであり、Cコードフォーム全體:

setTimeout(
  () => console.log('Hi from the callback queue'),
  5000); // 保持循環(huán)活動這么長時間

const stopTime = Date.now() + 2000;
while (Date.now() < stopTime) {}

Cにはあまり精通していないかもしれませんが、これは英語のように読み、フェーズ7で説明されているとおりです。

段階ごとのデモンストレーション

純粋なjavaScriptで各ステージを表示するには:

const stopTime = Date.now() + 2000;
while (Date.now() < stopTime) {}
// 這需要 7 秒才能執(zhí)行
setTimeout(() => console.log('Ran callback A'), 5000);

ファイルI/Oコールバックはステージ4および9の前に実行されるため、SetimMediate()が最初に発射されることが予想されます。

DNSクエリのないネットワークI/Oは、メインイベントループで実行されるため、ファイルI/Oよりも安価です。ファイルI/Oは、スレッドプールを介してキューに掲載されています。 DNSクエリもスレッドプールを使用するため、ネットワークI/OはファイルI/Oのように高価になります。
const fs = require('fs');
const readFileSync = async (path) => await fs.readFileSync(path);

readFileSync('readme.md').then((data) => console.log(data));
console.log('The event loop continues without blocking...');

スレッドプール

node.jsには、V8 JavaScriptエンジンとLibuvの2つの主要な部分があります。ファイルI/O、DNSクエリ、およびネットワークI/Oは、LIBUVを介して実行されます。

これは全體的な構(gòu)造です:

The Node.js Event Loop: A Developer's Guide to Concepts & Code

畫像出典:libuv document

ネットワークI/Oの場合、メインスレッド內(nèi)のイベントループポーリング。このスレッドは、別のスレッドとのコンテキストスイッチがないため、スレッドセーフではありません。ファイルI/OおよびDNSクエリはプラットフォーム固有であるため、方法はスレッドプールでそれらを?qū)g行することです。 1つのアイデアは、上記のコードに示すように、スレッドプールに入ることを避けるためにDNSのクエリを?qū)g行することです。たとえば、LocalHostの代わりにIPアドレスを入力すると、プールからルックアップが削除されます。スレッドプールで利用可能なスレッドの數(shù)は限られており、uv_threadpool_size環(huán)境変數(shù)を介して設(shè)定できます。デフォルトのスレッドプールサイズは約4です。

V8は別のループで実行され、コールスタックをクリアし、コントロールをイベントループに戻します。 V8は、獨自のループの外側(cè)のガベージコレクションに複數(shù)のスレッドを使用できます。 V8は、元のJavaScriptを使用してハードウェアで実行するエンジンと考えてください。

通常のプログラマーの場合、JavaScriptはスレッドの安全性の問題がないため、単一のスレッドのままです。 V8とLibuvは、獨自のニーズを満たすために、獨自のスレッドを內(nèi)部的に開始します。

node.jsにスループットの問題がある場合は、メインイベントループから始めます。アプリケーションが単一の反復(fù)を完了するのにかかる時間を確認(rèn)してください。 100ミリ秒を超えてはなりません。次に、スレッドプールの飢erとプールから追い出すことができるものを確認(rèn)します。プールのサイズは、環(huán)境変數(shù)によって増加することもできます。最後のステップは、同期して実行されたV8でJavaScriptコードのマイクロベンチマークを?qū)g行することです。

要約

コールバックがキューになっているため、イベントループは各段階を繰り返し続けます。ただし、各段階では、別のタイプのコールバックをキューする方法があります。

process.nexttick()およびsetimmediate()

各段階の終わりに、process.nexttick()コールバックがループで実行されます。このコールバックタイプは、各段階の終わりに実行されるため、イベントループの一部ではないことに注意してください。 Setimmediate()コールバックはイベントループ全體の一部であるため、名前が示すようにすぐに実行されません。 process.nexttick()にはイベントループの內(nèi)部メカニズムを理解する必要があるため、通常、setimmediate()を使用することをお勧めします。

process.nexttick():

が必要ないくつかの理由
  1. ループが続く前に、ネットワークI/Oがエラーを処理したり、クリーンアップしたり、リクエストを再試行したりすることを許可します。
  2. コールスタックが展開された後、ループが継続する前にコールバックを?qū)g行する必要がある場合があります。
たとえば、イベントトランスミッターは、獨自のコンストラクターでイベントをトリガーしたいと考えています。イベントを呼び出す前に、コールスタックを拡張する必要があります。

setTimeout(
  () => console.log('Hi from the callback queue'),
  5000); // 保持循環(huán)活動這么長時間

const stopTime = Date.now() + 2000;
while (Date.now() < stopTime) {}
通話スタックの拡張を許可すると、raveneRROR:最大コールスタックサイズなどのエラーが防止されます。注意すべきことの1つは、process.nexttick()がイベントループをブロックしないことを確認(rèn)することです。同じ段階內(nèi)の再帰コールバックコールは、ブロックの問題を引き起こす可能性があります。

結(jié)論

イベントループは、その究極の複雑さのシンプルさを具體化します。非同期性、糸の安全性、並行性などの困難な問題を解決します。役に立たない部品または不要な部品を削除し、最も効率的な方法でスループットを最大化します。したがって、node.jsプログラマーは、非同期エラーを追いかける時間を短縮し、新しい機(jī)能の提供により多くの時間を費やすことができます。

Node.jsイベントループに関するFAQ

node.jsイベントループとは何ですか? node.jsイベントループは、node.jsが非ブロッキング非同期操作を?qū)g行できるコアメカニズムです。シングルスレッドイベント駆動型環(huán)境でのI/O操作、タイマー、コールバックの処理を擔(dān)當(dāng)します。

ノードイベントループはどのように機(jī)能しますか?イベントループは、イベントキューのイベントまたはコールバックを継続的にチェックし、追加の順に実行します。ループで実行され、イベントの可用性に基づいてイベントを処理します。これにより、node.jsの非同期プログラミングが可能になります。

node.jsアプリケーションでのイベントループの役割は何ですか?イベントループはnode.jsの中心にあります。これにより、アプリケーションは応答性が高いことを保証し、複數(shù)のスレッドなしで多くの同時接続を処理できます。

node.jsイベントループの段階は何ですか? node.jsのイベントループには、タイマー、保留中のコールバック、アイドル、ポーリング、チェック、クロージングなど、いくつかの段階があります。これらのフェーズは、イベントの処理方法と順序を決定します。

イベントループで処理される最も一般的なイベントタイプは何ですか?一般的なイベントには、I/O操作(たとえば、ファイルからの読み取り、ネットワークリクエストの発行)、タイマー(SetimeoutおよびSetIntervalなど)、およびコールバック関數(shù)(例えば、非同期操作からのコールバック)が含まれます。

ノードイベントループで長期にわたる操作を処理する方法は?長期にわたるCPU集約型操作は、イベントループをブロックする可能性があり、child_processやworker_threadsモジュールなどのモジュールを使用して、子プロセスまたはワーカースレッドにオフロードする必要があります。

コールスタックとイベントループの違いは何ですか?コールスタックは、現(xiàn)在の実行コンテキストで関數(shù)呼び出しを追跡するデータ構(gòu)造であり、イベントループは非同期操作と非ブロッキング操作の管理を擔(dān)當(dāng)します。イベントループがコールバックとI/O操作の実行をスケジュールし、それらをコールスタックにプッシュするため、彼らは協(xié)力します。

イベントループの「ティック」とは何ですか? 「ティック」とは、イベントループの単一の反復(fù)を指します。各ティックで、イベントループは保留中のイベントをチェックし、実行する準(zhǔn)備ができたコールバックを?qū)g行します。ティックは、node.jsアプリケーションでの基本的な作業(yè)単位です。

以上がnode.jsイベントループ:概念とコードの開発者のガイドの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java vs. JavaScript:混亂を解消します Java vs. JavaScript:混亂を解消します Jun 20, 2025 am 12:27 AM

JavaとJavaScriptは異なるプログラミング言語であり、それぞれ異なるアプリケーションシナリオに適しています。 Javaは大規(guī)模なエンタープライズおよびモバイルアプリケーション開発に使用されますが、JavaScriptは主にWebページ開発に使用されます。

JavaScriptコメント:短い説明 JavaScriptコメント:短い説明 Jun 19, 2025 am 12:40 AM

JavaScriptcommentsEareEssentialential-formaining、およびGuidingCodeexecution.1)single-linecommentseared forquickexplanations.2)多LinecommentsexplaincomplexlogiCorprovidededocumentation.3)clarifyspartsofcode.bestpractic

JSで日付と時間を操作する方法は? JSで日付と時間を操作する方法は? Jul 01, 2025 am 01:27 AM

JavaScriptで日付と時間を処理する場合は、次の點に注意する必要があります。1。日付オブジェクトを作成するには多くの方法があります。 ISO形式の文字列を使用して、互換性を確保することをお勧めします。 2。時間情報を取得および設(shè)定して、メソッドを設(shè)定でき、月は0から始まることに注意してください。 3.手動でのフォーマット日付には文字列が必要であり、サードパーティライブラリも使用できます。 4.ルクソンなどのタイムゾーンをサポートするライブラリを使用することをお勧めします。これらの重要なポイントを習(xí)得すると、一般的な間違いを効果的に回避できます。

なぜの下部にタグを配置する必要があるのですか? なぜの下部にタグを配置する必要があるのですか? Jul 02, 2025 am 01:22 AM

PLACSTHETTHETTHE BOTTOMOFABLOGPOSTORWEBPAGESERVESPAGESPORCICALPURPOSESESFORSEO、userexperience、andDesign.1.IthelpswithiobyAllowingseNStoAccessKeysword-relevanttagwithtagwithtagwithtagwithemaincontent.2.iTimrovesexperiencebyepingepintepepinedeeping

JavaScript vs. Java:開発者向けの包括的な比較 JavaScript vs. Java:開発者向けの包括的な比較 Jun 20, 2025 am 12:21 AM

javascriptispreferredforwebdevelopment、whilejavaisbetterforlge-scalebackendsystemsandroidapps.1)javascriptexcelsininintingtivewebexperiences withitsdynAmicnature anddommanipulation.2)javaofferstruntypyping-dobject-reientedpeatures

JavaScript:効率的なコーディングのためのデータ型の調(diào)査 JavaScript:効率的なコーディングのためのデータ型の調(diào)査 Jun 20, 2025 am 12:46 AM

javascripthassevenfundamentaldatypes:number、string、boolean、undefined、null、object、andsymbol.1)numberseadouble-precisionformat、有用であるため、有用性の高いものであるため、but-for-loating-pointarithmetic.2)ストリングリムムット、使用率が有用であること

DOMでのイベントの泡立ちとキャプチャとは何ですか? DOMでのイベントの泡立ちとキャプチャとは何ですか? Jul 02, 2025 am 01:19 AM

イベントキャプチャとバブルは、DOMのイベント伝播の2つの段階です。キャプチャは最上層からターゲット要素までであり、バブルはターゲット要素から上層までです。 1.イベントキャプチャは、AddEventListenerのUseCaptureパラメーターをTrueに設(shè)定することにより実裝されます。 2。イベントバブルはデフォルトの動作であり、UseCaptureはfalseに設(shè)定されているか、省略されます。 3。イベントの伝播を使用して、イベントの伝播を防ぐことができます。 4.イベントバブルは、動的なコンテンツ処理効率を改善するためにイベント委任をサポートします。 5.キャプチャを使用して、ロギングやエラー処理など、事前にイベントを傍受できます。これらの2つのフェーズを理解することは、タイミングとJavaScriptがユーザー操作にどのように反応するかを正確に制御するのに役立ちます。

JavaとJavaScriptの違いは何ですか? JavaとJavaScriptの違いは何ですか? Jun 17, 2025 am 09:17 AM

JavaとJavaScriptは、異なるプログラミング言語です。 1.Javaは、エンタープライズアプリケーションや大規(guī)模なシステムに適した、靜的に型付けされ、コンパイルされた言語です。 2。JavaScriptは動的なタイプと解釈された言語であり、主にWebインタラクションとフロントエンド開発に使用されます。

See all articles