我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript ES6 Module模块详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript ES6 Module模块详解

0.什么是Module

历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来。其他语言都有这项功能,比如 Ruby 的require、Python 的import,甚至就连 CSS 都有@import,但是 JavaScript 任何这方面的支持都没有,这对开发大型的、复杂的项目形成了巨大障碍。

在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种。ES6 模块的设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,以及输入和输出的变量。ES6 模块不是对象,而是通过export命令显式指定输出的代码,再通过import命令输入。

模块系统主要解决的问题:

  • 模块化的问题
  • 消除全局变量
  • 管理加载顺序

1.Module 的加载

使用 < script >标签加载模块时需要添加 type=“module”。

1.1 方式一


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

1.2 方式二


<script class="lazy" data-src="./module.js" type="module"></script>

2.导出和导入

2.1 一个模块的导出可以被其它模块导入,并访问。

例1:使用About.js调用Base.js内的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 class="lazy" data-src = `nick:${Base.nick},age:${Base.age}.`;
export default class="lazy" data-src;

输出结果:

nick:admin,age:19.

2.2 没有导出,也可以将其导入

例2:About.js不导出,在首页将其导入。

index.html


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

About.js


const class="lazy" data-src = 'Hello World!';
console.log(class="lazy" data-src);

输出结果:

Hello World!

2.3 被导入的代码都会执行一遍,也仅会执行一遍

例3:导入3次About.js,观察导出结果。

index.html


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

About.js


const class="lazy" data-src = 'Hello World!';
console.log(class="lazy" data-src);

输出结果:


Hello World!

3.export default 和对应的 import

export default 用于导出一个默认值,一个模块只能有一个。

使用 export default 进行导出时,import 的名字可以随意起。

例4:使用 export default 进行导出,import 的名字随意起。

index.html


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

About.js


const class="lazy" data-src = 'Hello World!';
export default class="lazy" data-src;

输出结果:

Hello World!

4.export 和对应的 import

使用 export 进行导出时,import 的名字不能随意起。

例5:使用 export 进行导出。

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';

输出结果:

admin 18

5.Module 的注意事项

1.模块中,顶层的 this 指向 undefined;

2import 具有提升效果,会提升到整个模块的头部,率先执行;

3.import 执行的时候,代码还没执行;

4.import 和 export 只能在模块的顶层,不能在代码块中执行;

5.import() 可以按条件导入;

6.复合写法导出的,无法在当前模块中使用

复合写法,导入后导出:


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

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript ES6 Module模块详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

一文详解es6中的模块化

es6模块化是浏览器端与服务器端通用的模块化开发规范,其设计思想是尽量的静态化,使得编译时就能确定模块的依赖关系,及输入和输出的变量。
2022-11-22

如何解析es6模块

这篇文章主要为大家分析了如何解析es6模块的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“如何解析es6模块”的知识吧。ES6就是ECMAScript的第6个
2023-06-28

JavaScript ES6模块怎么导入和导出

本篇内容介绍了“JavaScript ES6模块怎么导入和导出”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:ES6模块化导入与导出有三
2023-07-02

Javascript模块导入导出详解

这篇文章主要介绍了Javascript模块导入导出详解的相关资料,需要的朋友可以参考下
2022-12-25

ES6 模块的实战运用:构建模块化的 JavaScript 应用

ES6 模块提供了一种将 JavaScript 代码组织成模块化单元的方式,从而提高了应用程序的可维护性和可重用性。本文将深入探讨 ES6 模块的实战运用,并通过示例代码展示如何构建模块化的 JavaScript 应用。
ES6 模块的实战运用:构建模块化的 JavaScript 应用
2024-03-02

python缺少module模块如何解决

当Python提示缺少模块时,可以尝试以下几种解决方案:1. 安装缺少的模块:使用pip命令安装缺少的模块。例如,如果缺少numpy模块,可以使用以下命令进行安装:`pip install numpy`。2. 检查模块名称:确保输入的模块名
2023-09-15

Node.JS中的模块、exports和module讲解

这篇文章主要介绍了Node.JS中的模块、exports和module讲解,模块分为两类一类是核心模块一类是文件模块,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
2023-01-11

拨开迷雾:JavaScript ES6 模块的深入浅出解读

JavaScript ES6 模块提供了代码组织和模块化的强大功能,了解其工作原理和最佳实践对于构建高效和可维护的应用程序至关重要。
拨开迷雾:JavaScript ES6 模块的深入浅出解读
2024-03-02

剖析 ES6 模块:拆解模块化编程的精髓

ES6 模块化编程是一种将 JavaScript 代码组织成独立模块的方法,使得代码更容易维护、重用和协作。本文将深入剖析 ES6 模块,探讨其概念、优点和使用方式。
剖析 ES6 模块:拆解模块化编程的精髓
2024-03-02

探索 ES6 模块的边界:理解模块加载和解析

深入研究 ES6 模块的内部运作机制,了解模块加载和解析的过程,为高效的模块化 JavaScript 开发奠定基础。
探索 ES6 模块的边界:理解模块加载和解析
2024-03-02

揭开 ES6 模块面纱:深入解析模块化概念

ES6 模块化是一种革命性的 JavaScript 特性,它通过将代码组织成模块来提升开发效率和可维护性。本文深入探讨 ES6 模块的核心概念,揭开其幕后运作原理,为开发人员提供全面指南。
揭开 ES6 模块面纱:深入解析模块化概念
2024-03-02

JavaScript ES6 模块进阶指南:从入门到精通

ES6 模块进阶指南:全面掌握 JavaScript 模块化
JavaScript ES6 模块进阶指南:从入门到精通
2024-03-02

编程热搜

目录