標準のリリースをES6前に、JSは、モジュール方式の概念ではありません、それはネイティブjsのあるいくつかの相互に依存の小さなモジュールに大きなプログラムを分割することができません。この問題のために提案ES6モジュールのコンセプトは、モジュールの依存関係を決定することができるように、静的な設計だけでなく、コンパイル時の変数の入力と出力しようとすることです。
静的が希望指定されたモジュールから直接取得する方法を参照については、他にはロードされません。そのようなものとして
STATのこの時点のみ負荷fsで、他がロードされていない、3つのモジュールが存在し、readFileの。例えば、AMD CommonJSとモジュールながら、これらのものは、実行時にのみ決定することができます。それはあなたがしたいモジュールを見つけ、その後、全体のFSをロードすることです。
インポートおよびエクスポート:モジュールの機能モジュールは、主に二つのコマンドで構成されています。
このモジュールの外部出力にエクスポート(ファイルがモジュールとして理解することができる)インタフェース変数の名前を変更するために出力する変数として使用することができます。
変数の名前を変更の導入のために使用することができるように、一つのモジュール内に含むエクスポート・インターフェースをロードするための別のインポートモジュール。インポートコマンドが持ち上げ効果を有し、最初に実行モジュール全体を、頭に推進します。あなたが繰り返し同じ文のimport文を実行した場合、一度だけ、複数回実行するのではなく。
exportコマンドを使用した後それはモジュールの外部インターフェース、インポートコマンドでモジュール(ファイル)を読み込むことができ、他のJSファイルを定義します。
輸出と輸出デフォルトの類似点と相違点:
1、両方の定数、関数、ファイル、および他のモジュールを導出します。
2、することができます別のファイルまたはモジュールのインポート+モード(定数|機能モジュール| |ファイル)が使用できるように、導入された名前、。
3、ファイルまたはモジュール、輸出、輸入は複数持つことができ、輸出デフォルト一つだけ。
図4に示すように、{追加するために導入されたとき、エクスポートされたエクスポートの方法}によって、エクスポートデフォルトは必要とされません。
それが定義されている場合は、エクスポート方法でインポート、エクスポートに導入されたとき、図5に示すように、指定された変数名を知る必要があります。あなたは、時間の輸出のデフォルトの定義を使用している場合や、インポートは、それが自動的にimportコマンドを使用する場合、デフォルトと呼ばれる変数を生成するために、輸出のデフォルト宣言エクスポートモジュールを使用すると、自動的にdefualtになるとき、として理解することができ、ここで任意の名前を再生することができます宣言に割り当てられた変数。これはまた、なぜ一つだけのエクスポートのデフォルトについて説明します。注意:それは変数のステートメントでバック宣言することはできませんので、輸出のデフォルトのコマンドは、デフォルトという名前の変数にのみ出力されます。
複雑な文言のインポートおよびエクスポート:
最初に同じ入力および出力モジュールのうちの1つのモジュール場合は、import文は、輸出の文と一緒に書き込むことができます。
![](https://img2018.cnblogs.com/blog/1718271/201907/1718271-20190724195318842-1334252423.png)
上記のコードは、エクスポートおよびインポートステートメントは、単一のラインに一緒に組み合わせることができます。書かれた線、fooとバーは現在のモジュールの中に実際にはありません後、外国の現在のモジュールで得られた、これら2つのインタフェースに転送するだけ等価直接fooとバーを使用することができない、ということに留意すべきです。