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

溫馨提示×

溫馨提示×

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

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

JavaScript模塊化的作用是什么

發布時間:2021-04-30 15:01:12 來源:億速云 閱讀:258 作者:Leah 欄目:開發技術

JavaScript模塊化的作用是什么?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

JavaScript可以做什么

1.可以使網頁具有交互性,例如響應用戶點擊,給用戶提供更好的體驗。 2.可以處理表單,檢驗用戶的輸入,并提供及時反饋節省用戶時間。 3.可以根據用戶的操作,動態的創建頁面。 4使用JavaScript可以通過設置cookie存儲在瀏覽器上的一些臨時信息。

一、模塊化概念

將一個復雜的程序依據一定的規則(規范)封裝成幾個塊(文件), 并進行組合在一起;塊的內部數據與實現是私有的, 只是向外部暴露一些接口(方法)與外部其它模塊通信。

二、模塊化作用

為什么要用模塊化的JavaScript?

因為在實際的開發過程中,經常會遇到變量、函數、對象等名字的沖突,這樣就容易造成沖突,還會造成全局變量被污染;
同時,程序復雜時需要寫很多代碼,而且還要引入很多類庫,這樣稍微不注意就容易造成文件依賴混亂;
為了解決上面的的問題,我們才開始使用模塊化的js,所以說模塊化的作用就是:

  • 避免全局變量被污染

  • 便于代碼編寫和維護

三、模塊化歷程

1、普通寫法(全局函數及變量)

其實只要是不同的函數或變量放一起就是簡單的模塊,這樣弊端很明顯,就是變量容易被污染;

var name = '卡卡';
function cat1(){
    name = '年年';
}
function cat2(){
    name = '有魚';
}

2、對象封裝

將整個模塊放在一個對象里面,外部訪問時直接調用對象的屬性或者方法就行

var cat = {
    name:'卡卡',
    cat1:function(){
        var name = '年年';
        console.log(name);
    },
    cat2:function(){
        var name = '有魚';
        console.log(name);
    }
}
cat.name;// 卡卡
cat.cat1();// 年年
cat.cat2();// 有魚

這種方法雖然解決了變量沖突問題,但是容易被外部隨意修改:

cat.name = '樓樓';

3、匿名函數方式

var cat = (function () {
    // 匿名函數的局部變量name
    var name = '卡卡';
    // 匿名函數的局部函數cat1
    var cat1 = function () {
        var name = '年年';
        console.log(name);
    };
    // 匿名函數的局部函數cat2
    var cat2 = function () {
        var name = '有魚';
        console.log(name);
    };
    //通過window暴露一個對外的口,想要被外界訪問,可以放到這里
    window.myModule = {
        cat1:cat1,
        cat2:cat2,
        name:name,
    };
})();
console.log(myModule.name);// name變量放入暴露口內,可以輸出,結果為:卡卡
myModule.cat1();// cat1函數放入暴露口內,可以輸出,結果為:年年
myModule.cat2();// cat2函數放入暴露口內,可以輸出,結果為:有魚

如果把變量name移除,此時再訪問就訪問不了,結果為undefined,這樣就實現了變量不被隨意修改的問題,即:

window.myModule = {
    cat1:cat1,
    cat2:cat2,
};
console.log(myModule.name);// undefined

匿名函數方式基本上解決了函數污染及變量隨意被修改問題,這個也是模塊化規范的基石!

JavaScript模塊化的作用是什么

四、模塊化方案

根據匿名函數自調用的方式,同時為了增強代碼依賴性,現在大部分JavaScript運行環境都有自己的模塊化規范;

可以分為:Commonjs、AMD、CMD、ES6 module四大類

1、CommonJS

①在node環境下使用,不支持瀏覽器環境
②NodeJS遵循的規范
③使用require()進行引入依賴
④使用exports進行暴露模塊

2、AMD

①瀏覽器環境下的異步加載模塊
②RequireJS遵循的規范
③依賴于require.js模塊管理工具庫
④AMD 推崇依賴前置

3、CMD

①瀏覽器環境下,同時支持異步和同步加載
②SeaJS遵循的規范
③CMD 推崇依賴就近

4、ES6 module

ES6模塊化語法在編譯時就能確定模塊的依賴關系,還能確定好輸入輸出的變量聲明,已經不僅僅是模塊規范,現在已經作為JS語言的標準語法使用,有以下特性:

①瀏覽器環境、服務器環境都支持
②編譯時就能確定模塊的依賴關系及變量,其他模塊規范都是在運行時確定的
③export命令用于規定模塊的對外接口
④import命令用于輸入其他模塊提供的功能

關于JavaScript模塊化的作用是什么問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

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

AI

丘北县| 麻城市| 和田县| 富阳市| 叙永县| 上蔡县| 南汇区| 外汇| 潞西市| 张家界市| 秦皇岛市| 翁源县| 隆林| 苏尼特左旗| 陇西县| 玉田县| 花垣县| 涪陵区| 渝北区| 宜兰市| 胶南市| 清远市| 博罗县| 利津县| 弋阳县| 康平县| 河北区| 博湖县| 道孚县| 安徽省| 东乡| 普宁市| 关岭| 岳阳县| 民和| 曲松县| 萍乡市| 澎湖县| 灵宝市| 镇宁| 洮南市|