【ES6复习笔记】ES6的模块化(18)

模块化的概念

模块化是指将一个复杂的系统分解为多个模块,每个模块完成一个特定的功能,模块之间通过接口进行通信。模块化的目的是提高代码的可读性、可维护性和可重用性。

模块化规范产品, ES6 之前的模块化规范有:

  • CommonJS ====> NodeJS、Browserify
  • AMD ====> requireJS
  • CMD ====> seaJS

模块化的基本语法

  • 导出模块:使用 export 关键字导出模块中的变量、函数或类。
  • 导入模块:使用 import 关键字导入其他模块中的变量、函数或类。

导出模块的方式

  • 默认导出:使用 export default 关键字导出一个默认的模块。
  • 命名导出:使用 export 关键字导出多个命名的模块。

分别导出

js 复制代码
export let school = '星达网络'
export function teach(){
    console.log('教技能')
}

统一导出

js 复制代码
//统一暴露
let school = '星达网络';
function findjob(){
    console.log('找工作吧');
}
export {school,findjob}

默认导出

js 复制代码
//默认暴露
export default {
    school:'ATGUIGU',
    change:function(){
        console.log('我们可以改变你')
    }
}

导入模块的方式

  • 默认导入:使用 import defaultName from 'module'; 导入默认模块。
  • 命名导入:使用 import { name1, name2 } from 'module'; 导入多个命名模块。
  • 全部导入:使用 import * as name from 'module'; 导入模块中的所有内容。

1. 默认导入(只针对默认暴露)

js 复制代码
import m3 from "./src/js/m3.js"

2. 命名导入( 解构赋值方式)

js 复制代码
import {school,teach} from "./src/js/m1.js"
import {school as guigu,findJob} from "./src/js/m2.js"
import {default as m3 } from "./src/js/m3.js"

3. 全部导入

js 复制代码
import * as m1 from "./src/js/m1.js"
import * as m2 from "./src/js/m2.js"
import * as m3 from "./src/js/m3.js"

4.HTML中引入

html 复制代码
<script src="./src//js/app.js" type=modeule></script>

示例代码

javascript 复制代码
// m1.js
export let school = '星达网络';

export function teach() {
  console.log("我们可以教给你开发技能");
}

// m2.js
let school = '星达网络';

function findJob() {
  console.log("我们可以帮助你找工作!!");
}

export { school, findJob };

// m3.js
export default {
  school: 'ATGUIGU',
  change: function() {
    console.log("我们可以改变你!!");
  }
}

// app.js
import * as m1 from './m1.js';
import * as m2 from './m2.js';
import * as m3 from './m3.js';

console.log(m1);
console.log(m2);
console.log(m3);

m1.teach();
m2.findJob();
m3.default.change();
相关推荐
乐橙开放平台8 小时前
明厨亮灶笔记:乐橙轻应用 H5 + 小程序插件,一套 BFF 出两张播放凭证
人工智能·笔记·物联网·小程序·音视频·notepad++
acheding8 小时前
File System Access API 实战:让网页真正读写本地文件
前端·javascript·vue.js·编辑器·markdown
何时梦醒8 小时前
⚛️ React 19 + TypeScript 深度学习笔记 —— 从组件化思维到 WebGPU 端侧 AI 落地
前端·javascript·人工智能
用户938515635078 小时前
从 Vite 脚手架到 WebGPU 推理:手写一个 DeepSeek-R1 浏览器端大模型 Demo
javascript·人工智能·全栈
acheding8 小时前
把 CodeMirror 6 调教成 Markdown 编辑器:扩展、装饰与门面
javascript·vue.js·编辑器·markdown
labixiong8 小时前
TypeScript 7.0 编译器用 Go 重写,速度暴增10倍——背后到底做了什么?
前端·javascript·go
weedsfly8 小时前
一个电商价格计算案例,带你学会前端开发中的责任链模式
前端·javascript·面试
左左右右左右摇晃9 小时前
手写Tomcat原理整理
java·开发语言·笔记·tomcat
An_s9 小时前
Android仿真翻页(一),基于pagecurl二开
前端·javascript·html
.Hypocritical.9 小时前
Maven笔记——2
java·笔记·maven