ES6モジュールとモジュールCommonJSの違いは何ですか?

CommonJS差ES6モジュールとモジュール:
モジュールのCommonJS浅いコピー、モジュールはES6モジュール参照され、即ち、読み取り専用ES6モジュールを維持し、その値が、特定のポイントにポインタが変更されず、同様のCONST変更できない
インポートインタフェースを変更することはできません読み取り専用(読み取り専用)、可変値です。それはにその変数のポインタを変更することはできませんが、内部ポインタ変数を変更することができ、再割り当てするcommonJSは(へのポインタを変更する)ことができ、
しかしES6モジュールの割り当ては、エラーをコンパイルします。

<スクリプトタイプ= "テキスト/ JavaScriptを">
             // CommonJSで浅いコピーモジュール
            // lib.js 
            VARのカウンタ= 3 ;
             関数incCounter(){ 
                カウンタ ++ ; 
            } 
            module.exportsは = { 
                カウンタ:カウンタ、
                incCounter。 incCounter 
            }; 
            //はmain.js 
            VARの MODを必要とする=( './ LIB' ); 
            
            にconsole.log(mod.counter);   // 3 
            mod.incCounter(); 
            にconsole.log(mod.counter); // 3
        </スクリプト> 
        ます。<script type = "text / javascriptの"> // ES6モジュール是对模块的引用// lib.js 
            輸出せカウンタ= 3 ; 
            エクスポート関数incCounter(){ 
              カウンタ ++ 
            } // main.js 
            './lib'からインポート{カウンタ、incCounter} 
            console.log(カウンタ)// 3             incCounter()。
            console.log(カウンタ)// 4 
        </スクリプト> 
        ます。<script type = "text / javascriptの"> // m1.js
            
            
            
            

            
            輸出のvarのfoo = 'bar'に
            setTimeout(() => FOO = 'バズ'、500 ); 
            
            // m2.js 
            「./m1.js'からインポート{FOO} 
            console.log(FOO)。// バー 
            のsetTimeout(()=>はconsole.log(FOO)、500); // バズ 
        </ SCRIPT>

CommonJS共通モジュールおよびES6モジュール:
CommonJSおよびES6モジュール、すなわち、オブジェクト属性値の変更の内部に、導入されたオブジェクトに割り当てることができません。
しかし、あなたは属性を追加することができます

<スクリプトタイプ= "テキスト/ javascriptの">
             //はlib.js 
            エクスポートLET OBJ = {}; 
            
            // main.js 
            './lib'からインポート{OBJ} 
            
            obj.prop = 123。// OK 
            OBJ = {}; // 例外TypeError 
        </ SCRIPT>

おすすめ

転載: www.cnblogs.com/wangxi01/p/11590106.html