设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间23 现在时间23 缓存数据 荣耀也罢,屈辱也罢,都要以平和的心态去面对,少一些无奈与感慨,多一份从容和淡然。晚安!

荣耀也罢,屈辱也罢,都要以平和的心态去面对,少一些无奈与感慨,多一份从容和淡然。晚安!

查看: 837|回复: 1

JavaScript中的模块化开发ES6:import与export详解

[复制链接]

  离线 

TA的专栏

  • 打卡等级:即来则安
  • 打卡总天数:15
  • 打卡月天数:0
  • 打卡总奖励:298
  • 最近打卡:2023-08-27 06:19:59
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
35
主题
33
精华
0
金钱
415
积分
80
注册时间
2023-8-12
最后登录
2025-9-24

发表于 2025-8-30 02:51:16 | 显示全部楼层 |阅读模式
在 JavaScript 中,模块化开发是一种将代码分割为独立、可复用部分的开发方式。ES6(ECMAScript 2015)引入了原生的模块系统(即
  1. import
复制代码
  1. export
复制代码
),使得开发者可以更方便地组织和管理代码。

📌 一、什么是模块化?

模块化是指将一个大型程序拆分为多个功能独立的文件(模块),每个模块负责一部分功能,通过接口暴露和引入的方式进行通信。模块化的好处包括:

  • 提高代码可维护性
  • 便于复用
  • 避免命名冲突
  • 更好的组织代码结构

🧩 二、export 详解
  1. export
复制代码
用于从模块中导出函数、对象、变量等,供其他模块使用。

1. 命名导出(Named Exports)
  1. // math.js
  2. export const PI = 3.14;

  3. export function add(a, b) {
  4.     return a + b;
  5. }
复制代码
也可以在导出时使用别名:
  1. export { PI as PI_CONSTANT } from './math.js';
复制代码
2. 默认导出(Default Export)

一个模块只能有一个默认导出。
  1. // utils.js
  2. export default function() {
  3.     console.log("Hello from default export");
  4. }
复制代码
3. 同时导出命名和默认
  1. // lib.js
  2. export const name = "Alice";

  3. export default class Person {
  4.     constructor(name) {
  5.         this.name = name;
  6.     }
  7. }
复制代码
🧩 三、import 详解
  1. import
复制代码
用于从其他模块导入变量、函数、类等。

1. 导入命名导出
  1. // main.js
  2. import { PI, add } from './math.js';

  3. console.log(PI); // 3.14
  4. console.log(add(2, 3)); // 5
复制代码
2. 导入并重命名
  1. import { PI as PI_CONSTANT } from './math.js';
复制代码
3. 导入整个模块
  1. import * as MathUtils from './math.js';

  2. console.log(MathUtils.PI);
  3. console.log(MathUtils.add(1, 2));
复制代码
4. 导入默认导出
  1. // utils.js 是默认导出一个函数
  2. import sayHello from './utils.js';

  3. sayHello(); // Hello from default export
复制代码
5. 同时导入默认和命名导出
  1. import Person, { name } from './lib.js';

  2. console.log(name); // Alice
  3. const p = new Person("Bob");
复制代码
⚙️ 四、模块加载方式

模块在浏览器中运行时,需要使用
  1. <script type="module">
复制代码
  1. <script type="module" src="main.js"></script>
复制代码
或者内联方式:
  1. <script type="module">
  2.     import { add } from './math.js';
  3.     console.log(add(1, 2));
  4. </script>
复制代码
🧪 五、注意事项


  • 模块是严格模式:模块默认启用
    1. "use strict"
    复制代码
    ,无需手动声明。
  • 模块代码只执行一次:即使被多个文件导入,也只会执行一次。
  • 模块路径需带扩展名:如
    1. ./math.js
    复制代码
    ,不能省略
    1. .js
    复制代码

  • 模块是异步加载的:浏览器会异步加载模块,不会阻塞 HTML 解析。

🧠 六、示例:模块化项目结构
  1. project/

  2. ├── index.html
  3. ├── main.js
  4. ├── math.js
  5. └── utils.js
复制代码
math.js
  1. export const PI = 3.14;

  2. export function multiply(a, b) {
  3.     return a * b;
  4. }
复制代码
utils.js
  1. export default function greet(name) {
  2.     console.log(`Hello, ${name}!`);
  3. }
复制代码
main.js
  1. import { PI, multiply } from './math.js';
  2. import greet from './utils.js';

  3. console.log("PI:", PI);
  4. console.log("Multiply 3 * 4:", multiply(3, 4));
  5. greet("Alice");
复制代码
🧰 七、模块打包工具(可选)

虽然原生模块已经很强大,但在实际开发中,我们常使用打包工具来优化模块加载:

  • Webpack
  • Rollup
  • Vite
  • Parcel
这些工具可以:

  • 自动处理模块路径
  • 支持代码分割
  • 支持 TypeScript、JSX 等扩展
  • 提升加载性能

✅ 总结

特性说明
  1. export
复制代码
导出变量、函数、类等
  1. import
复制代码
导入模块内容命名导出可导出多个值,通过名称导入默认导出每个模块只能有一个默认导出模块执行只执行一次,多次导入不会重复执行使用方式需配合
  1. <script type="module">
复制代码
使用到此这篇关于JavaScript中的模块化开发ES6:import与export详解的文章就介绍到这了,更多相关js中的模块化:import与export内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
晓枫资讯-科技资讯社区-免责声明
免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
      1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
      2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
      3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
      4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
      5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

  离线 

TA的专栏

等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
0
主题
0
精华
0
金钱
24
积分
28
注册时间
2022-12-24
最后登录
2022-12-24

发表于 2025-11-15 07:22:44 | 显示全部楼层
感谢楼主分享。
http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼

手机版|晓枫资讯--科技资讯社区 本站已运行

CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

晓枫资讯--科技资讯社区

本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表