ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptのインタプリタとは何ですか

JavaScriptのインタプリタとは何ですか

青灯夜游
青灯夜游オリジナル
2021-12-07 16:15:544102ブラウズ

「JavaScript エンジン」とも呼ばれる JavaScript インタープリターは、JavaScript スクリプトの処理に特化した仮想マシンであり、通常は Web ブラウザーに組み込まれています。JavaScript インタープリターには、字句解析、構文解析、パーサーの 4 つのコンポーネントがあります。 、バイトコードジェネレーター、バイトコードインタープリター。

JavaScriptのインタプリタとは何ですか

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

JavaScript インタプリタとは何ですか?

JavaScript は、他の人が解釈して実行する必要があるスクリプト言語です。この他の人は、 JavaScript インタープリタ。 JS ステートメントを読み取り、変換し、実行し、次の JS ステートメントを読み取り、サイクルが再び始まります。

JavaScript インタープリターは JavaScript エンジンとも呼ばれ、JavaScript スクリプトの処理に特化した仮想マシンであり、通常は Web ブラウザーに組み込まれています。その機能は JavaScript ソース コードを実行することです。

JavaScript 解析エンジンは、JavaScript コードを「読み取り」、コードの実行結果を正確に提供できるプログラムです。

JavaScript インタープリターの構成

JavaScript インタープリターには、字句パーサー、構文パーサー、およびバイトコード生成プロセッサーであるバイトコード インタープリターの 4 つのコンポーネントがあります。

字句パーサー

コード ソース コードの行を単語の意味の最小単位に分割できます。いわゆる意味単位は、文法的に分割できない最小の単一文字または文字の組み合わせです。

  var number = 2;
  //解析成下面的json格式
  [
      {
        'type':'keyword',
        'value':'var'
      },
      {
        'type':'identifier',
        'value':'number',
      },
      {
        'type':'Punctuator',
        'value':'=',
      },
      {
       'type':'Numeric',
       'value':'2',
      }
      {
       'type':'Punctuator',
       'value':';'
      }
  ]

構文アナライザー

文法規則に従って、上記の分析された配列を抽象構文ツリーに変換します。Esprimas 解析ツールを使用して、それを認識し、次のように変換できます。 json形式。

この抽象構文ツリーは何に役立ちますか?

人々はコードの圧縮と最適化について話しますが、私にはこれが理解できません。その後、コンパイラや IDE などには多くの用途があると言われます (スキルが十分ではないため、今はそれについて立ち入る方法がありません)十分)

美団点評で、構文ツリーを使用して JavaScript コードを再構築できることをテクノロジーで知りました。

バイトコード ジェネレーター

その機能構文ツリーを、エンジンが読み取って実行できる JavaScript バイナリ コードに変換します。

各 JavaScript エンジンには独自のバイトコード形式があります。最も簡単な方法は、セマンティック単位をバイナリに変換することです。

バイトコード インタプリタ

もちろん、これはリンクの後にバイナリ コードが含まれている場合、次のステップではバイナリ コードを実行し、目で確認できる結果を生成します。

[関連する推奨事項: JavaScript 学習チュートリアル]

以上がJavaScriptのインタプリタとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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