はい、初心者の質問です。ブラウザ内で JavaScript が実行されています。では、すべてのブラウザは、javascript コードを実行するための (Java のような) 仮想マシンのようなものでしょうか? どの形式でも JavaScript を「コンパイル」できませんか?
3 に答える
そうです、事前に Javascript を他のものに「コンパイル」することはできません。ブラウザがコンパイルして実行します。一部のブラウザは、他のブラウザよりも洗練された Javascript コンパイラを備えています。
実際、ブラウザーにはJavaScript エンジンが内部で実行されています。このエンジンは、JavaScript コードを読み取って実行します。したがって、それはむしろインタープリターです(コンパイルはまったくありません)
各ブラウザ ウィンドウ、さらにはそのウィンドウ内の各ブラウザ フレームは、独自の HTML/javascript 実行エンジンです (仮想マシンに似ています)。
それぞれが完全に独立しているわけではありません (いくつかのセキュリティ制限の対象となります)。相互に通信でき、相互に認識できますが、それぞれに実行状態、独自のグローバル変数、独自のコード、独自のイベント ハンドラーがあります。等...
Javascript コードは、C/C++ コードがコンパイルされるのと同じ意味で実際にはコンパイルされません。ブラウザは、テキスト形式の JavaScript のみを受け入れます。次に、ブラウザはそのテキストを解釈します。ブラウザが異なれば、可能な限り迅速に実行するために JavaScript テキストを解釈する方法も異なります。C/C++ コードのように純粋な機械語に直接コンパイルされるのではなく、インタープリターがプレーン テキストよりもはるかに高速に実行できるものにコンパイル (または変更) されます。