| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- <!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="a.js"></script>
 
-     <script src="b.js"></script>
 
-     <!-- 以模块方式引入 js 文件 -->
 
-     <script src="./myMath.js" type="module"></script>
 
-     <script>
 
-       console.log(r); // 30
 
-       // console.log(PI); // 会报错
 
-       /**
 
-        ** 1. 什么是模块化开发?
 
-        **   所谓的模块化开发 就是 以 模块 为基本组成单元 去实现项目的开发
 
-        ** 2. 什么是模块?
 
-        ** 一个模块 对应的就是 一个文件。文件中 是 独立的可复用的代码片段。
 
-        ** 比如,说在JS中 一个js文件 就是 一个模块,该文件名字 一般就是模块的名称、
 
-        ** 3. 模块化解决的问题
 
-        **  3.1 命名冲突: 由于模块具有独立的作用域(模块作用域或者文件作用域),因此不同模块内定义的同名变量 是不会发生冲突的
 
-        **  3.2 代码组织:有了模块之后,可以将独立的或者可复用的代码 提取出来,放到模块中。模块的文字就可以用来作为功能的一个提示。
 
-        **  3.3 依赖问题:在模块中有固定语法来解决模块间的依赖问题。
 
-        ** 4. 模块的使用
 
-        **   4.1 创建模块
 
-               在js中,创建一个js文件 即创建了一个模块、默认情况下模块会具有独立的作用域。内部数据 不会直接暴露出去
 
-        **   4.2 对外暴露
 
-               模块实现对外暴露接口 有两种方式:
 
-               A: 命名导出  named export
 
-               B: 默认导出  default export
 
-       **    4.3 引入依赖
 
-               针对不同的导出方式 依赖的引入 也有两种方式:
 
-               A 针对命名导出:
 
-                 按需导:import {arg1, arg2, ..., argN} from '模块路径' 将指定模块的命名导出 一次一个一个的导入进来
 
-                 整体导:import * as 变量名字 from '模块路径'  将所有的命名导出 都通过一个对象形式导入到当前模块内
 
-               B 针对 默认导出:
 
-                 import 变量 from '模块路径'
 
-               C 同时 针对默认和命名导出
 
-                 import 变量名, {arg1, arg2, ..., argN} from '模块路径'
 
-        **/
 
-     </script>
 
-     <script type="module">
 
-       // 在type=module的 script标签内使用import from导入依赖 模块路劲要添加 后缀名
 
-       // import { calcCircleArea } from './myMath.js';
 
-       // calcCircleArea(10); // 314
 
-       // import * as myMath from './myMath.js';
 
-       // // 创建一个myMath对象 -- myMath = {} 然后将myMath模块中所有的命名导出数据 都以属性的方式添加给 变量myMath
 
-       // myMath.calcCircleArea(10);
 
-       import m from './myMath.js';
 
-       console.log(m);
 
-     </script>
 
-   </body>
 
- </html>
 
 
  |