Common JS仕様を簡単に理解する
2127 ワード
前に書く:
一つのファイルはモジュールです.
また、本論文のコード例はnode.js環境で中国側が正常に動作する必要があります.そうでなければ、エラーが発生します.実際にES 6はモジュール仕様になっています.ES 6を使用するモジュール仕様はnode.js環境を必要としないです.したがって、common JS仕様とES 6のモジュール仕様を区別する必要があります.
一、なぜCommon JS規格を制定しますか?
バックエンドでは、JavaScriptの仕様がはるかに遅れていて、多くの欠陥があります.これはJavaScriptを使用して大型アプリケーションを開発するのが難しいです.例えば、モジュールシステムの標準ライブラリがないと標準インターフェースが少ないです.
CommonJS仕様の提出は、JavaScriptに標準的な欠陥がないことを補うために、Python、Ruby、Javaのように、大規模なアプリケーションを開発する基礎能力を備えています.
二、Common JSモジュール規範
Common JSモジュール仕様は主に3つの部分に分けられています.モジュール参照、モジュール定義、モジュール識別.
1、モジュール参照
a.jsファイルに次のような文が使われている場合
パスとパスなしで上の例のrequireのパラメータはモジュール名の文字列だけです.パスはありません.参照はa.jsの現在のディレクトリの下にあるnodemodulesディレクトリの下にあるmathモジュールです.現在のディレクトリにnodemumodulesディレクトリまたはnodemumodulesディレクトリの中にmathモジュールがインストールされていないとエラーが発生します.導入するモジュールが他のパスにあります.相対パスまたは絶対パスに使用する必要があります.例えば、
2、モジュール定義
3、モジュール識別
モジュール識別とは、requireメソッドに渡されるパラメータであり、必ず小さなラクダのピークに合わせて命名された文字列でなければなりません.または、…、先頭の相対パス、または絶対パスです.
三、Common JSモジュール規範のメリット
CommonJSモジュール規範は変数汚染問題をよく解決しています.各モジュールは独立した空間を持っています.互いに干渉しないで、名前空間などの方案はこれと比べて見劣りします.
CommonJS仕様定義モジュールはとても簡単で、インターフェースは非常に簡潔です.
Common JSモジュール仕様は導入と導出機能をサポートしており、各モジュールをスムーズに接続し、相互の依存関係を実現しています.
一つのファイルはモジュールです.
また、本論文のコード例はnode.js環境で中国側が正常に動作する必要があります.そうでなければ、エラーが発生します.実際にES 6はモジュール仕様になっています.ES 6を使用するモジュール仕様はnode.js環境を必要としないです.したがって、common JS仕様とES 6のモジュール仕様を区別する必要があります.
一、なぜCommon JS規格を制定しますか?
バックエンドでは、JavaScriptの仕様がはるかに遅れていて、多くの欠陥があります.これはJavaScriptを使用して大型アプリケーションを開発するのが難しいです.例えば、モジュールシステムの標準ライブラリがないと標準インターフェースが少ないです.
CommonJS仕様の提出は、JavaScriptに標準的な欠陥がないことを補うために、Python、Ruby、Javaのように、大規模なアプリケーションを開発する基礎能力を備えています.
二、Common JSモジュール規範
Common JSモジュール仕様は主に3つの部分に分けられています.モジュール参照、モジュール定義、モジュール識別.
1、モジュール参照
a.jsファイルに次のような文が使われている場合
var math=require('math');
1は、require()方法を用いてmathモジュールを導入し、変数matchに値を付与することを意味する.実際には、命名された変数名と導入されたモジュール名は必ずしも同じではない.var Math=require('math');
賦値の意味は、a.jsではMathのみが認識されます.これは既に定義されている変数であり、mathは定義されていません.パスとパスなしで上の例のrequireのパラメータはモジュール名の文字列だけです.パスはありません.参照はa.jsの現在のディレクトリの下にあるnodemodulesディレクトリの下にあるmathモジュールです.現在のディレクトリにnodemumodulesディレクトリまたはnodemumodulesディレクトリの中にmathモジュールがインストールされていないとエラーが発生します.導入するモジュールが他のパスにあります.相対パスまたは絶対パスに使用する必要があります.例えば、
var add=require('./add.js')
上記の例では、現在のディレクトリのadd.jsファイルを導入し、add変数に値を与えます.2、モジュール定義
module : ,module 。
export :module , 。
前の例を依然として採用しており、add.jsのコードは以下の通りであると仮定する.function add(num1,num2){
alert(num1+num2);
}
A.jsファイルはadd.jsファイルを導入していますが、前者は依然として後者のadd関数を使用できません.a.jsファイルの中でadd(3,5)というコードはエラーとなります.addは関数ではありません.add.jsの関数は他のモジュールに使用されます.外部のインターフェースを暴露して、export属性はこの仕事を完成するために必要です.add.jsコードは以下のように変更します.exports.add=function (num1,num2){
alert(num1+num2);
}
a.jsファイルは正常にadd.jsの方法を呼び出すことができます.例えば、add.add(3,5)のような呼び出しは正常に実行できます.前のaddは本ファイルのadd変数が代表するモジュールを意味し、後のaddはモジュールを導入するadd方法です.3、モジュール識別
モジュール識別とは、requireメソッドに渡されるパラメータであり、必ず小さなラクダのピークに合わせて命名された文字列でなければなりません.または、…、先頭の相対パス、または絶対パスです.
三、Common JSモジュール規範のメリット
CommonJSモジュール規範は変数汚染問題をよく解決しています.各モジュールは独立した空間を持っています.互いに干渉しないで、名前空間などの方案はこれと比べて見劣りします.
CommonJS仕様定義モジュールはとても簡単で、インターフェースは非常に簡潔です.
Common JSモジュール仕様は導入と導出機能をサポートしており、各モジュールをスムーズに接続し、相互の依存関係を実現しています.