欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript ES6 Module模塊詳解

 更新時間:2021年10月24日 17:11:57   作者:daixiangcn  
這篇文章主要介紹了ES6新特性之模塊Module用法,簡要說明了模塊Module的概念、功能并結(jié)合實例形式分析了模塊Module的使用方法與相關(guān)注意事項,需要的朋友可以參考下

0.什么是Module

歷史上,JavaScript 一直沒有模塊(module)體系,無法將一個大程序拆分成互相依賴的小文件,再用簡單的方法拼裝起來。其他語言都有這項功能,比如 Ruby 的require、Python 的import,甚至就連 CSS 都有@import,但是 JavaScript 任何這方面的支持都沒有,這對開發(fā)大型的、復(fù)雜的項目形成了巨大障礙。

在 ES6 之前,社區(qū)制定了一些模塊加載方案,最主要的有 CommonJS 和 AMD 兩種。ES6 模塊的設(shè)計思想是盡量的靜態(tài)化,使得編譯時就能確定模塊的依賴關(guān)系,以及輸入和輸出的變量。ES6 模塊不是對象,而是通過export命令顯式指定輸出的代碼,再通過import命令輸入。

模塊系統(tǒng)主要解決的問題:

  • 模塊化的問題
  • 消除全局變量
  • 管理加載順序

1.Module 的加載

使用 < script >標簽加載模塊時需要添加 type=“module”。

1.1 方式一

<script type="module">
    import module from "./module.js";
</script>

1.2 方式二

<script src="./module.js" type="module"></script>

2.導(dǎo)出和導(dǎo)入

2.1 一個模塊的導(dǎo)出可以被其它模塊導(dǎo)入,并訪問。

例1:使用About.js調(diào)用Base.js內(nèi)的Base對象,并在首頁打印。

index.html

<script type="module">
    import About from "./js/About.js";
    console.log(About);
</script>

Base.js

const Base = {
    nick: 'admin',
    age: 19
}
export default Base;

About.js

import Base from '../js/Base.js';
const src = `nick:${Base.nick},age:${Base.age}.`;
export default src;

輸出結(jié)果:

nick:admin,age:19.

2.2 沒有導(dǎo)出,也可以將其導(dǎo)入

例2:About.js不導(dǎo)出,在首頁將其導(dǎo)入。

index.html

<script type="module">
    import "./js/About.js";
</script>

About.js

const src = 'Hello World!';
console.log(src);

輸出結(jié)果:

Hello World!

2.3 被導(dǎo)入的代碼都會執(zhí)行一遍,也僅會執(zhí)行一遍

例3:導(dǎo)入3次About.js,觀察導(dǎo)出結(jié)果。

index.html

<script type="module">
    import "./js/About.js";
    import "./js/About.js";
    import "./js/About.js";
</script>

About.js

const src = 'Hello World!';
console.log(src);

輸出結(jié)果:

Hello World!

3.export default 和對應(yīng)的 import

export default 用于導(dǎo)出一個默認值,一個模塊只能有一個。

使用 export default 進行導(dǎo)出時,import 的名字可以隨意起。

例4:使用 export default 進行導(dǎo)出,import 的名字隨意起。

index.html

<script type="module">
    import bbb from "./js/About.js";
    console.log(bbb);
</script>

About.js

const src = 'Hello World!';
export default src;

輸出結(jié)果:

Hello World!

4.export 和對應(yīng)的 import

使用 export 進行導(dǎo)出時,import 的名字不能隨意起。

例5:使用 export 進行導(dǎo)出。

index.html

<script type="module">
    import { age, nick } from "./js/About.js";
    console.log(nick, age);
</script>

About.js

const age = 18;
export {age};
// export age; ×
// export const age = 18; √
export const nick = 'admin';

輸出結(jié)果:

admin 18

5.Module 的注意事項

1.模塊中,頂層的 this 指向 undefined;

2import 具有提升效果,會提升到整個模塊的頭部,率先執(zhí)行;

3.import 執(zhí)行的時候,代碼還沒執(zhí)行;

4.import 和 export 只能在模塊的頂層,不能在代碼塊中執(zhí)行;

5.import() 可以按條件導(dǎo)入;

6.復(fù)合寫法導(dǎo)出的,無法在當(dāng)前模塊中使用

復(fù)合寫法,導(dǎo)入后導(dǎo)出:

export About from './js/About.js';

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 使用JS實現(xiàn)抖音上很火的圣誕樹的示例代碼

    使用JS實現(xiàn)抖音上很火的圣誕樹的示例代碼

    圣誕節(jié)快到了,經(jīng)常會在抖音上刷到圣誕樹的視頻,所以本文小編給大家介紹了如何使用JS實現(xiàn)圣誕樹,文章通過代碼示例給大家介紹的非常詳細,感興趣的小伙伴跟著小編一起來看看吧
    2023-12-12
  • bootstrap table實現(xiàn)橫向合并與縱向合并

    bootstrap table實現(xiàn)橫向合并與縱向合并

    這篇文章主要為大家詳細介紹了bootstrap table實現(xiàn)橫向合并與縱向合并,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 根據(jù)后端返回的json數(shù)據(jù)快速生成ts類型的實現(xiàn)代碼

    根據(jù)后端返回的json數(shù)據(jù)快速生成ts類型的實現(xiàn)代碼

    在前端開發(fā)中,我們通常需要處理來自后端或其他數(shù)據(jù)源的 JSON 數(shù)據(jù),這些數(shù)據(jù)可能非常復(fù)雜,包含不同類型的屬性,甚至嵌套對象和數(shù)組,為了更好地使用這些數(shù)據(jù),我們希望將其轉(zhuǎn)換為TypeScript類型定義,以獲得類型檢查和代碼智能提示的好處
    2023-10-10
  • 手機圖片預(yù)覽插件photoswipe.js使用總結(jié)

    手機圖片預(yù)覽插件photoswipe.js使用總結(jié)

    這篇文章主要為大家詳細總結(jié)了手機圖片預(yù)覽插件photoswipe.js使用方法,感興趣的小伙伴們可以參考一下
    2016-08-08
  • js腳本加載失敗問題解決辦法

    js腳本加載失敗問題解決辦法

    在項目中經(jīng)常會用到動態(tài)加載js,下面這篇文章主要給大家介紹了關(guān)于js腳本加載失敗問題的解決辦法,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用js具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-06-06
  • 關(guān)于function類中定義變量this的簡單說明

    關(guān)于function類中定義變量this的簡單說明

    下面小編就為大家?guī)硪黄P(guān)于function類中定義變量this的簡單說明。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • html dom節(jié)點操作(獲取/修改/添加或刪除)

    html dom節(jié)點操作(獲取/修改/添加或刪除)

    DOM 是關(guān)于如何獲取、修改、添加或刪除 HTML 元素的標準,下面為大家介紹下html dom節(jié)點操作,感興趣的朋友可以參考下
    2014-01-01
  • JavaScript 程序編碼規(guī)范

    JavaScript 程序編碼規(guī)范

    這是一套適用于JavaScript程序的編碼規(guī)范。它基于Sun的Java程序編碼規(guī)范。但進行了大幅度的修改, 因為JavaScript不是Java。
    2010-11-11
  • Javascript實用方法之json合并的場景分析

    Javascript實用方法之json合并的場景分析

    這篇文章主要介紹了Javascript實用方法之json合并,jQuery 的“extend()”方法有兩個原型:合并的方法,分別是淺合并和深度合并,本文通過代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • javascript瀏覽器用戶代理檢測腳本實現(xiàn)方法

    javascript瀏覽器用戶代理檢測腳本實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨avascript瀏覽器用戶代理檢測腳本實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論