ES6 从入门到精通 # 23:ES6 的模块化实现(完结)

简介: ES6 从入门到精通 # 23:ES6 的模块化实现(完结)

说明

ES6 从入门到精通系列(全23讲)学习笔记。



ES6 module

es6 模块功能主要有两个命令构成 export 和 import。


  • export:用于规定模块的对外接口
  • import:用于输入其他模块提供的功能

一个模块就是一个独立的文件


我们新建一个 module 文件夹,里面新建 index.js 文件

export const name = "kaimo313";


6169c0761ac947c0af66e083205a44d0.png

在另外的文件里面引入

<!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 type="module">
        import {name} from "./module/index.js";
        console.log(name);
    </script>
</body>
</html>

900d606abb8843d2893c3fd2f8a3ea15.png


抛出多个变量

export const name = "kaimo313";
export const age = 313;
export function getName() {
    return "my name is kaimo";
};



或者

const name = "kaimo313";
const age = 313;
function getName() {
    return "my name is kaimo";
};
export {
    name,
    age,
    getName
}
<!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 type="module">
        import {name, age, getName} from "./module/index.js";
        console.log(name, age, getName());
    </script>
</body>
</html>


8725f6bec5a441b398a5f8ece7347751.png


命名使用 defalut,一个文件只能使用一次

export const name = "kaimo313";
export const age = 313;
export function getName() {
    return "my name is kaimo";
};
let obj = {
    name: "kaimo666777"
}
export default obj;
<!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 type="module">
        import kaimo, {name, age, getName} from "./module/index.js";
        console.log(name, age, getName());
        console.log(kaimo)
    </script>
</body>
</html>


f5be574e8a0f4eb3af54aa586b4d5e90.png


使用 * as

<!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 type="module">
        // import kaimo, {name, age, getName} from "./module/index.js";
        // console.log(name, age, getName());
        // console.log(kaimo)
        import * as k from "./module/index.js";
        console.log(k);
        console.log(k.getName());
    </script>
</body>
</html>


cca7492acbd8416785dcba3993787c8d.png


引入类

export const name = "kaimo313";
export const age = 313;
export function getName() {
    return "my name is kaimo";
};
export class Person {
    constructor() {}
    getName() {
        return "kaimo313313";
    }
}
let obj = {
    name: "kaimo666777"
}
export default obj;


<!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 type="module">
        // import kaimo, {name, age, getName} from "./module/index.js";
        // console.log(name, age, getName());
        // console.log(kaimo)
        import * as k from "./module/index.js";
        console.log(k);
        console.log(k.getName());
        console.log(new k.Person().getName());
    </script>
</body>
</html>


018059a9e9a643b6a276a3bd1b56bc89.png

目录
相关文章
|
2月前
|
JavaScript 前端开发 小程序
大前端进阶(ES6)
大前端进阶(ES6)
50 0
|
5月前
|
JavaScript 前端开发 Java
[前端学习]ES6小史
[前端学习]ES6小史
25 0
|
5月前
|
前端开发 JavaScript 开发者
ES6知识点
ES6知识点
27 0
|
9月前
|
JSON JavaScript 前端开发
【编程指南】ES2016到ES2023新特性解析一网打尽(一)
【编程指南】ES2016到ES2023新特性解析一网打尽(一)
72 0
|
9月前
|
前端开发 JavaScript Java
【编程指南】ES2016到ES2023新特性解析一网打尽(二)
【编程指南】ES2016到ES2023新特性解析一网打尽(二)
123 0
|
11月前
|
缓存 JavaScript 前端开发
「万字进阶」深入浅出 Commonjs 和 Es Module
全方位介绍模块化 Commonjs 和 Es Module
「万字进阶」深入浅出 Commonjs 和 Es Module
|
11月前
|
前端开发 JavaScript 小程序
每天3分钟,重学ES6-ES12(十七)模块化历史
每天3分钟,重学ES6-ES12(十七)模块化历史
61 0
|
11月前
|
监控 前端开发 JavaScript
每天3分钟,重学ES6-ES12(十五)异步代码处理方案
每天3分钟,重学ES6-ES12(十五)异步代码处理方案
77 0
|
JSON 前端开发 JavaScript
前端实战【ES6】你会ES6,但是你真的会用吗?
前端实战【ES6】你会ES6,但是你真的会用吗?
112 0
前端实战【ES6】你会ES6,但是你真的会用吗?
|
前端开发
es6常用知识点
es6常用知识点