js的2種commonjs,js有幾種類型

本文目錄一覽:

javascript模塊化是什麼及其優缺點介紹

如今backbone、emberjs、spinejs、batmanjs

等MVC框架侵襲而來。CommonJS、AMD、NodeJS、RequireJS、SeaJS、curljs等模塊化的JavaScript撲面而

來。web前端已經演變成大前端,web前端的發展速度之快。

1)我們來看看什麼是模塊化?

模塊化是一種將系統分離成獨立功能部分的方法,可將系統分割成獨立的功能部分,嚴格定義模塊接口、模塊間具有透明性。javascript中的模塊在一些C、PHP、java中比較常見:

c中使用include 包含.h文件;php中使用require_once包含.php文件

java使用import導入包

此中都有模塊化的思想。

2)模塊化的優缺點:

a優點:

可維護性

1.靈活架構,焦點分離

2.方便模塊間組合、分解

3.方便單個模塊功能調試、升級

4.多人協作互不干擾

可測試性

1.可分單元測試

b缺點:

性能損耗

1.系統分層,調用鏈會很長

2.模塊間通信,模塊間發送消息會很耗性能

3)最近的項目中也有用到模塊化,

使用的是seajs,但是當引用到jquery,jquery easyui/或者jquery

UI組件時,有可能會用到很多jquery插件,那這樣要是實現一個很複雜的交互時,模塊間的依賴會很多,使用define()方法引入模塊會很多,不知

有么有什麼好的方法?

4)附:

內聚度

內聚度指模塊內部實現,它是信息隱藏和局部化概念的自然擴展,它標誌着一個模塊內部各成分彼此結合的緊密程度。好處也很明顯,當把相關的任務分組後去閱讀就容易多了。 設計時應該儘可能的提高模塊內聚度,從而獲得較高的模塊獨立性。

耦合度

耦合度則是指模塊之間的關聯程度的度量。耦合度取決於模塊之間接口的複雜性,進入或調用模塊的位置等。與內聚度相反,在設計時應盡量追求鬆散耦合的系統。

CMD 規範是不是就是 commonJS 規範

CMD是國內玉伯大神在開發SeaJS的時候提出來的,屬於CommonJS的一種規範,此外還有AMD,其對於的框架是RequireJS

1、二者都是異步模塊定義(Asynchronuous Module Definition)的一個實現;

2、CMD和AMD都是CommonJS的一種規範的實現定義,RequireJS和SeaJS是對應的實踐;

3、CMD和AMD的區別:CMD相當於按需加載,定義一個模塊的時候不需要立即制定依賴模塊,在需要的時候require就可以了,比較方便;而AMD則相反,定義模塊的時候需要制定依賴模塊,並以形參的方式引入factory中。

區別看下邊例子:

//AMD方式定義模塊

define([‘dep1′,’dep2’],function(dep1,dep2){

//內部只能使用制定的模塊

return function(){};

});

//CMD

define(function(require,exports,module){

//此處如果需要某XX模塊,可以引入

var xx=require(‘XX’);

});

4、JavaScript語言是弱結構性的,通過CommonJS定義一些規範,CMD和AMD得定義模塊的方式對代碼進行管理,使得更易維護;此外,NodeJS的誕生,對模塊的規範定義,和包(npm)的概念的引入,讓JS管理不再困難,一個字,爽爆了!

簡述什麼是commonjs,以及其與nodejs的關係

自從CommonJS和NodeJS兩個項目的出現,JavaScript作為本地編程語言的這種特殊應用形式,才開始進入進入大眾的視野。

說明什麼是CommonJS。 另外隨着並行計算的普及,像JavaScript這種函數式語言,由於其固有的易於進行並行計算的特性,將有更廣闊的應用前景。

什麼是【CommonJs】

CommonJs 是一種 JavaScript 語言的模塊化規範,它通常會在服務端的 Nodejs 上使用。項目是由多個模塊組成的,模塊和模塊之間的調用,需要各個模塊有相同規範的 API,這樣一來在使用的過程中不會有那麼多的學習成本,並且對於單個模塊來說是類聚的。

在 CommonJs 的模塊化規範中,每一個文件就是一個模塊,擁有自己獨立的作用域、變量、以及方法等,對其他的模塊都不可見。CommonJS規範規定,每個模塊內部,module 變量代表當前模塊。這個變量是一個對象,它的 exports 屬性(module.exports)是對外的接口。加載某個模塊,其實是加載該模塊的 module.exports 屬性。require 方法用於加載模塊。

模塊化規範給項目帶來極大的好處,在業務複雜,模塊眾多的大型項目中,開發者都遵循相同的規則來開發各自的模塊,他們通過規範來約束模塊的定義,大家不需要太多的溝通或者大量的文檔來說明自己的模塊使用規則,成千上萬的模塊就這樣生產,並能夠容易的使用。它的意義不僅是讓模塊看起來很規範,在合作開發、社區中傳播中也起到了重大的作用。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/230351.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 18:17
下一篇 2024-12-10 18:17

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • 如何使用JS調用Python腳本

    本文將詳細介紹通過JS調用Python腳本的方法,包括使用Node.js、Python shell、child_process等三種方法,以及在Web應用中的應用。 一、使用Nod…

    編程 2025-04-27
  • 如何反混淆美團slider.js

    本文將從多個方面詳細闡述如何反混淆美團slider.js。在開始之前,需要明確的是,混淆是一種保護JavaScript代碼的方法,其目的是使代碼難以理解和修改。因此,在進行反混淆操…

    編程 2025-04-27
  • Python要學JS嗎?

    Python和JavaScript都是非常受歡迎的編程語言。然而,你可能會問,既然我已經學了Python,是不是也需要學一下JS呢?在本文中,我們將圍繞這個問題進行討論,並從多個角…

    編程 2025-04-27
  • 解決js ajax post 419問題

    對於使用ajax post請求時出現的419問題,我們需要進行以下幾個方面的闡述,包括返回碼的含義、可能出現的情況、解決方案等內容。 一、解析419返回碼 419返回碼錶示用戶超時…

    編程 2025-04-27
  • Three.js實現室內模型行走

    在本文中,將介紹如何使用Three.js創建室內模型,並在場景中實現行走。為了實現這一目標,需要完成以下任務: 加載室內模型及材質貼圖 實現攝像機控制,支持用戶自由行走 添加光源,…

    編程 2025-04-25

發表回復

登錄後才能評論