ホームページ  >  記事  >  ウェブフロントエンド  >  CJSとMJSの違いを理解しましょう

CJSとMJSの違いを理解しましょう

WBOY
WBOYオリジナル
2024-09-05 21:00:04627ブラウズ

Let

CJS (CommonJS) および MJS (ES モジュール) という用語は、JavaScript でコードを再利用可能なコンポーネントに編成するために使用される 2 つのモジュール システムを指します。 。両者の比較は次のとおりです:

1.CommonJS (CJS)

  • 構文: CommonJS は、require() を使用してモジュールと module.exports をロードするか、exports を使用してそれらをエクスポートします。
  • 使用場所: これは、ES モジュールの導入前に主に Node.js で使用されていたモジュール システムです。
  • 同期ロード: CommonJS モジュールは 同期 でロードされます。つまり、モジュールがロードされるまで実行がブロックされます。これはサーバー側のアプリケーションには理想的ですが、非同期読み込みが優先されるクライアント側のコードにはあまり適していません。
  • 例:

     // Import
     const fs = require('fs');
    
     // Export
     module.exports = function () {
       console.log("Hello from CJS");
     };
    

2.ES モジュール (MJS)

  • 構文: ES モジュールはインポートおよびエクスポート ステートメントを使用します。
  • 使用場所: 最新の JavaScript 環境、ブラウザーと Node.js (拡張子 .mjs を使用するか、package.json の "type": "module" を使用) の両方。
  • 非同期読み込み: ES モジュールは 非同期 で読み込まれます。これはクライアント側の環境に適しています。
  • 例:

     // Import
     import fs from 'fs';
    
     // Export
     export function greet() {
       console.log("Hello from MJS");
     }
    

主な違い:

  1. 読み込みメカニズム:

    • CJS: モジュールは同期的にロードされます。
    • MJS: モジュールは非同期でロードされるため、特定のシナリオ (特にブラウザー) ではブロックされず、より効率的になります。
  2. 構文:

    • CJS: require() と module.exports を使用します。
    • MJS: インポートとエクスポートを使用します。
  3. 互換性:

    • CJS: Node.js で広くサポートされていますが、ブラウザーとの互換性は低くなります (バンドラーなし)。
    • MJS: ES6 モジュール標準に準拠した、最新のブラウザおよび Node.js (バージョン 12 以降) でのネイティブ サポート。
  4. デフォルトのエクスポート:

    • CJS: オブジェクトまたは関数をモジュールとして直接エクスポートできます。
    • MJS: 名前付きエクスポートとデフォルトのエクスポートの両方をサポートし、複数の関数または値をより柔軟にエクスポートできます。

いつ使用するか:

  • CJS (CommonJS): CommonJS モジュール システムに基づく古い Node.js プロジェクトまたは既存のライブラリを使用する場合。
  • MJS (ES モジュール): 最新のアプリケーション、特に最新のランタイムを対象とするクライアント側開発または Node.js プロジェクトを構築する場合。

現代の開発では、ES モジュールが標準になりつつありますが、多くのレガシー プロジェクトは依然として CommonJS に依存しています。

以上がCJSとMJSの違いを理解しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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