ES6模块Module
export导出模块
let myName = 'tom';
let myAge = 18;
let myfn = ()=>{
return "my name is" + myName +','+ 'my age is ' + myAge
}
export {myAge,myName,myfn}
//注意: 导出包要用 export{要导出的函数或者变量}
import导入模块
import { myName,myAge,myfn } from "./export.js";
console.log(myfn());
console.log(myName);
console.log(myAge);
// 使用格式如 import {要导入的变量或者包} from "导入包的js文件路径"
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script src="./import.js" type="module"></script>
</body>
</html>
这里要注意的是,script引入importjs文件的时候,要写上 type=“module”,不然会报错
as 的用法
export.js
let myName = "meworain";
export {myName as exportName}
import.js
import {exportName} from "./export.js";
console.log(exportName);
那如果我们遇到要导入的两个包的变量相同怎么办?
这就体现了as的用处了
不同模块导出接口名称命名重复, 使用 as 重新定义变量名。
as不仅能在exprot中使用,也可以在import中使用
export1.js
let myName = "meworain";
export {myName}
export2.js
let myName = "yyds";
export {myName}
import.js
import {myName as name1} from "./export1.js";
import { myName as name2 } from "./export2.js";
console.log(name1);
console.log(name2);
关于import使用的注意项
注意: 从别的包中导入的变量,不能改变其内容,也不能改变其类型,是只读的
如果把上面的import.js改成下面这样
import {myName as name1} from "./export1.js";
import { myName as name2 } from "./export2.js";
name1 = 123;
console.log(name2);
会直接报错
export default 命令
特点:
- 在一个文件或模块中,export、import 可以有多个,export default 仅有一个。
- export default 中的 default 是对应的导出接口变量。
- 通过 export 方式导出,在导入时要加{ },export default 则不需要。
- export default 向外暴露的成员,可以使用任意变量来接收。
案例:
export.js
let a = 'my name is meowrain';
export default a;
import.js
import g from './export.js';
console.log(g);