12【module的语法】

本文详细介绍了JavaScript的Module语法,包括模块的基本概念、Module的导入导出方式,如export default和export,以及import()的动态加载模块。通过实例解析了export与import的复合写法,并探讨了import()的适用场景和注意事项。
摘要由CSDN通过智能技术生成

module的语法

1.初识Module

(1)什么是模块

模块:一个一个的局部作用域的代码块。

(2)什么是模块系统

模块系统:系统的解决了模块化一系列问题。

  1. 模块化的写法(之前我们用立即执行函数模拟模块化,ES6 则实现了针对模块化的语法)
  2. 消除全局变量(模块中的变量都是局部的,不同模块之间不会相互干扰,可以通过特定语法暴露指定内容)
  3. 管理加载顺序(之前我们将一个总的 JavaScript 程序分几个文件写,但在最终合并调用时,js 的引入需要满足前后依赖关系。比如:被引用的 js 文件就一定要在引用它的 js 文件之前加载)

2.Module的基本用法

注意:Module 要生效,必须在服务器环境下才能执行。

普通的 HTML、JS 是本地文件环境,地址以 file 协议开头,服务器则以 http 或 https 开头。

方法:VSCode 中使用 Live Server 拓展,WebStorm 默认就是服务器环境。

  • 一个 JS 文件就是一个模块
  • 用 import 关键字导入模块
  • 用 export 关键字导出模块需要暴露的部分
  • 在使用 script 标签加载的时候,需要加上 type=“module”,否则就以普通 JS 文件的形式引入了,就不是模块了

3.Module的导入导出

导出的东西可以被导入(import),并访问到!

对于导入和导出有两种方法:

  • export default 导出,import 导入
  • export 导出,import 导入

3.1 export default 导出和对应的 import 导入

(1)一个模块没有导出,是否可以将其导入?

<!-- 一个模块没有导出,也可以将其导入 -->
<!-- 被导入的模块的代码都会执行一遍,并且同一个模块的导入只执行一遍! -->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Module</title>
</head>
<body>
<!-- script 标签需要加上 type="module" -->
<script type="module">
    import "./test.js";		// 浏览器控制台打印:test
    import "./test.js";		// 不执行
    import "./test.js";		// 不执行
    import "./test02.js";	// 浏览器控制台打印:test02
    import "./test.js";		// 不执行
    import "./test02.js";	// 不执行
</script>
</body>
</html>

----------------------------------------------------
<!-- test.js -->

console.log("test");

----------------------------------------------------
<!-- test02.js -->

console.log("test02");

(2)一个模块中只能有一个 export default。

【module.js】

// 模块中的变量都是局部的
const age = 18;
const sex = "male";

export default age;			// 通过 export default 导出(暴露)一个值
// export default sex;		// 报错!因为 export default 只能在一个文件中导出一次!!!

/*
export default 24;				// 可以导出值
export default {};				// 可以导出对象
export default function(){};	 // 可以导出函数
export default class{};			 // 可以导出class
*/

【index.html】

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Module</title>
</head>
<body>
<!-- script 标签需要加上 type="module" -->
<script type="module">
    // import 之后跟一个模块的别名,推荐别名与导出时的名字相同,比如这里就用 age
    import age from "./module.js";
    console.log(age);	// 18
</script
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DSelegent

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值