当前JavaScript 在Web 世界中占比非常大,很多网站全由JS 构建
为了JS 更现代、简洁、可维护,ES6 引入了模块化功能
<script type="module" src="filename.js"></script>
export 导出想要分享的代码块
export const add = (x, y) => {//耦合导出
return x + y;
}
const add = (x, y) => {
return x + y;
}
export { add };//解耦合导出
export { add, subtract };//解耦合导出多个
import 导入想要使用的代码块
import { add } from './math_functions.js';// ./ 同文件夹下
import { add, subtract } from './math_functions.js';
//导入所有,并放入一个对象中
import * as myMathModule from "./math_functions.js";
myMathModule.add(2,3);
myMathModule.subtract(5,3);
// <script type="module", 这样导入的js 或mjs 中才能使用import (仅测试过chrome)
// 也就是说<script>...</script> 这样的内联JS 是用不了import 的
// 我的做法是全都是 type="module" 导入
// module 扩展名mjs, 如bubble-sort.mjs
// 使用module 的文件扩展名为js, 如main.js
export default
export default function crc32() { // 一个文件只能有一个默认导出
// ...
}
export default function () {//匿名函数
console.log('foo');
}
function foo() {
console.log('foo');
}
export default foo;
import varName from 'crc32'; // 所以导入时不需要花括号,varName 随便取
JavaScript Modules in 100 Seconds
nodejs modules 使用总结