中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CommonJS規范有哪些

發布時間:2021-01-30 15:15:38 來源:億速云 閱讀:118 作者:小新 欄目:web開發

這篇文章主要介紹CommonJS規范有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

寫在前面:
  一個文件就是一個模塊。
  另外本文中的示例代碼需要在node.js環境中方可正常運行,否則將出現錯誤。事實上ES6已經出現了模塊規范,如果使用ES6的模塊規范是無需node.js環境的。因此,需要將commonJS規范和ES6的模塊規范區分開來。

一、為什么制定CommonJS規范?

在后端,JavaScript的規范遠遠落后并且有很多缺陷,這使得難以使用JavaScript開發大型應用。比如:

沒有模塊系統
標準庫較少
沒有標準接口
缺乏包管理系統
列表內容

CommonJS規范的提出,主要是為了彌補JavaScript沒有標準的缺陷,已達到像Python、Ruby和Java那樣具備開發大型應用的基礎能力,而不是停留在開發瀏覽器端小腳本程序的階段。

二、CommonJS模塊規范
  CommonJS模塊規范主要分為三部分:模塊引用、模塊定義、模塊標識。

1、模塊引用

如果在a.js文件中使用如下語句

var math=require('math');

意為使用require()方法,引入math模塊,并賦值給變量math。事實上,命名的變量名和引入的模塊名不必相同,就像這樣:

var Math=require('math');

賦值的意義在于,a.js中將僅能識別Math,因為這是已經定義的變量,并不能識別math,因為math沒有定義。

帶路徑和不帶路徑

上面例子中require的參數僅僅是模塊名字的字符串,沒有帶有路徑,引用的是a.js所在當前目錄下的node_modules目錄下的math模塊。如果當前目錄沒有node_modules目錄或者node_modules目錄里面沒有安裝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方法的參數,必須是符合小駝峰命名的字符串,或者以 . 、.. 、開頭的相對路徑,或者絕對路徑。

三、CommonJS模塊規范的好處
CommonJS模塊規范很好地解決變量污染問題,每個模塊具有獨立空間,互不干擾,命名空間等方案與之相比相形見絀。

CommonJS規范定義模塊十分簡單,接口十分簡潔。

CommonJS模塊規范支持引入和導出功能,這樣可以順暢地連接各個模塊,實現彼此間的依賴關系。

以上是“CommonJS規范有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

溧阳市| 额济纳旗| 广饶县| 桃园县| 平利县| 南陵县| 社旗县| 闸北区| 乌鲁木齐县| 察雅县| 渝北区| 平乡县| 湘乡市| 普兰县| 门头沟区| 连平县| 乌兰浩特市| 河间市| 上饶县| 梁河县| 江安县| 克拉玛依市| 敖汉旗| 定远县| 崇义县| 白城市| 通江县| 开封市| 仙游县| 棋牌| 汉阴县| 绍兴县| 泊头市| 通海县| 潜江市| 铁岭市| 丹棱县| 阜城县| 柳江县| 新疆| 招远市|