国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Javascript的模塊管理 CMD AMD ES7等

darryrzhong / 1691人閱讀

摘要:一一開始是垃圾,但隨著時代的發(fā)展業(yè)務(wù)的進步,變得越來越重要,但涉及之初就是用來打雜的,有缺陷如下簡單翻譯下沒有模塊系統(tǒng)沒有標準庫沒有文件沒有系統(tǒng)沒有標準接口,用來做服務(wù)器或者數(shù)據(jù)庫沒有依賴包管理系統(tǒng)。

一 Commonjs

一開始js是垃圾,但隨著時代的發(fā)展、業(yè)務(wù)的進步,js變得越來越重要,但js涉及之初就是用來打雜的,有缺陷如下:

JavaScript has no module system. To compose JavaScript scripts, they must be either managed in HTML, concatenated, injected, or manually fetched and evaluated. There is no native facility for scope isolation or dependency management.

JavaScript has no standard library. It has a browser API, dates, and math, but no file system API, much less an IO stream API or primordial types for binary data.

JavaScript has no standard interfaces for things like Web servers or databases.

JavaScript has no package management system that manages dependencies and automatically installs them, except JSAN (not to be confused with JSON), which falls short for scope isolation.

簡單翻譯下:

沒有模塊系統(tǒng)

沒有標準庫、沒有文件、沒有IO系統(tǒng)

沒有標準接口,用來做服務(wù)器、或者數(shù)據(jù)庫

沒有依賴包管理系統(tǒng)。

所以mozila的工程師希望來解決這個問題

“What I’m describing here is not a technical problem. It’s a matter of people getting together and making a decision to step forward and start building up something bigger and cooler together.”

這并不是一個技術(shù)問題,而是為了便于更多人合作...

所以就有了commonjs,定義了這些概念,而nodejs實現(xiàn)了這個標準。
CommonJS定義的模塊分為:{模塊引用(require)} {模塊定義(exports)} {模塊標識(module)}
比如這個樣子:

// foo.js
module.exports = function(x) {
  console.log(x);
};

// main.js
var foo = require("./foo");
foo("Hi");

看似完美的解決了模塊問題,但在瀏覽器模式下是不行的,假設(shè)我們有如下這段代碼

var math = require("math");
math.add(2, 3);

問題1:math.add會被阻塞掉,必須在require完成之后再執(zhí)行
問題2:即使能夠異步加載,但你如何能夠知道什么時候加載完畢,什么時候能夠執(zhí)行完么?

二 AMD

(Asynchronous Module Definition) 異步模塊加載
這里不得不說到我們的requirejs,它有兩個參數(shù) 
 

require([module], callback);

第一個表示依賴的模塊,第二個就是具體的回掉了,比如上上述的代碼

require(["math"], function (math) {
    math.add(2, 3);
  });
三 ES6

ES6中的模塊最大的特點就是靜態(tài),即在編譯時就確定依賴關(guān)系,ES6中會自然采用嚴格模式:

變量必須聲明后再使用

函數(shù)的參數(shù)不能有同名屬性,否則報錯

不能使用with語句

不能對只讀屬性賦值,否則報錯

不能使用前綴0表示八進制數(shù),否則報錯

不能刪除不可刪除的屬性,否則報錯

不能刪除變量delete prop,會報錯,只能刪除屬性delete global[prop]

eval不會在它的外層作用域引入變量

eval和arguments不能被重新賦值

arguments不會自動反映函數(shù)參數(shù)的變化

不能使用arguments.callee

不能使用arguments.caller

禁止this指向全局對象

不能使用fn.caller和fn.arguments獲取函數(shù)調(diào)用的堆棧

增加了保留字(比如protected、static和interface)

參考:http://www.cnblogs.com/chengu...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/85000.html

相關(guān)文章

  • 前端模塊管理(RequireJS、AMDCMD、CommonJS、ES6)

    摘要:是一個小巧的模塊載入框架,壓縮后,具有輕量級異步加載模塊等特點。通過和關(guān)鍵字,旨在建立客戶端和服務(wù)器端通用的加載規(guī)范。 隨著應(yīng)用復雜度的攀升,常規(guī)的JavaScript引入方式(script標簽)已經(jīng)不能滿足需求,模塊化管理成為團隊協(xié)作的高效方法,現(xiàn)在的模塊化管理主要有RequireJS、AMD、CMD、CommonJS、ES6四種模式。 RequireJS是一個小巧的JavaScri...

    iOS122 評論0 收藏0
  • js面試題(上)

    https://segmentfault.com/a/11... 原型 / 構(gòu)造函數(shù) / 實例 對原型的理解 我們知道在es6之前,js沒有類和繼承的概念,js是通過原型來實現(xiàn)繼承的。在js中一個構(gòu)造函數(shù)默認自帶有一個prototype屬性, 這個的屬性值是一個對象,同時這個prototype對象自帶有一個constructor屬性,這個屬性指向這個構(gòu)造函數(shù),同時每一個實例 都有一個__proto...

    leap_frog 評論0 收藏0
  • 關(guān)于JavaScript模塊規(guī)范之CommonJSAMDCMD

    摘要:所有依賴這個模塊的語句,都定義在一個回調(diào)函數(shù)中,等到加載完成之后,這個回調(diào)函數(shù)才會運行。也采用語句加載模塊,但是不同于,它要求兩個參數(shù)第一個參數(shù),是一個數(shù)組,里面的成員就是要加載的模塊第二個參數(shù),則是加載成功之后的回調(diào)函數(shù)。 本篇文章來自對文章《js模塊化編程之徹底弄懂CommonJS和AMD/CMD!》的總結(jié),大部分摘自文章原話,本人只是為了學習方便做的筆記,之后有新的體會會及時補充...

    binaryTree 評論0 收藏0
  • 前端模塊化開發(fā)

    摘要:來源于阿賢博客模塊化今天給大家寫一篇關(guān)于前端模塊化開發(fā)知識點。前端模塊化開發(fā)那點歷史模塊化是指在解決某個復雜混雜問題時,依照一種分類的思維把問題進行系統(tǒng)性的分解以之處理。 來源于:阿賢博客 javascript模塊化 今天給大家寫一篇關(guān)于前端模塊化開發(fā)知識點。 前端模塊化開發(fā)那點歷史 模塊化: 是指在解決某個復雜、混雜問題時,依照一種分類的思維把問題進行系統(tǒng)性的分解以之處理。模塊...

    tianhang 評論0 收藏0
  • AMD, CMD, CommonJS和UMD

    摘要:若不存在則模塊標識應(yīng)該默認定義為在加載器中被請求腳本的標識。其中是一個數(shù)組,里面的成員就是要加載的模塊是模塊加載完成之后的回調(diào)函數(shù)。在加載與兩個模塊之后執(zhí)行回調(diào)函數(shù)實現(xiàn)具體過程。在判斷是否支持是否存在,存在則使用方式加載模塊。 我的github(PS:希望star): https://github.com/tonyzheng1... 今天由于項目中引入的echarts的文件太大,req...

    KavenFan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<