1.什么是模块?

  1. 模块就是一个js代码块
  2. 封装成模块的js文件,内部成员对外不可见,除非导出来
  3. 模块解决了js的模块开发与代码封装问题

2.模块有什么优势?

  1. 1.可维护性:每个模块都是独立的,各写各的互不影响,出错直接定位出错处。
  2. 可复用性:只需要一条`import`指令就可以导入
  3. 避免污染全局空间:模块处于自己的命名空间

模块是一个js文件,显然不能像之前一样,将js写入html中
模块要到一个独立的js文件中,并使用一些特别的语法和关键字


3.书写方式

变量、函数、类都可以导出、导入

3.1 单个导出

  1. export let name="Jy";

3.2 多个导出-建议使用

  1. let name="Jy";
  2. let name2="Jy2";
  3. let name3="Jy3";
  4. let name4="Jy4";
  5. export {name,name2 as myName,name3};

3.3 默认成员导出(默认导出成员也不要写大括号)

```export default name4;

  1. ### 3.4 导出默认成员和普通成员
  2. ```export {name,name4 as default};
  3. console.log(name4);//Jy4

3.5 单个导入

需要写到标签<script type="module"></script>

  1. import {name} from './module.js';
  2. console.log(name);//Jy

3.6 多个导入

```import {name,myName,name3 as myName2} from ‘./module.js’;
console.log(myName);//Jy2

  1. ### 3.7 默认成员导入(最大的区别是不用写大括号)

import name4 from ‘./module.js’;
console.log(name4);//Jy4
```

3.8 导入既有默认成员也有普通成员

import name4 ,{name} from './module.js';


4. 注模块使用时意事项

  1. 使用外部模块时禁止重复声明模块成员
  2. 模块成员不允许更新
  3. 一个模块中只允许有一个默认成员

5. 模块的命名空间

  1. 命名空间:是一个容器,内部可以包括任何类型的数据
  2. 命名空间是一个对象,可以挂载到当前全局中

将3.6中的多个导入使用命名空间,这样就可以使用相同的变量名了。

  1. import * as space2 from './module.js';
  2. let name="1";
  3. console.log(name,space2.name);//1,Jy

更多相关文章

  1. 不懂运维的开发人员能走多远?快来学习一下 Nginx 的配置吧!
  2. Puppet自动化集群管理进阶篇
  3. 9.4成员变量和局部变量的区别
  4. 9.5private 和this关键字的用法
  5. 9.3使用变量的规则
  6. 9.2类的定义和使用
  7. php 类成员重载 与命名空间
  8. php类和trait
  9. DMHS-达梦实时同步工具

随机推荐

  1. android:stateNotNeeded="true"
  2. Android(安卓)Notification 详解
  3. Android有用代码(二)
  4. (android)应用基础
  5. xamarin android实现Toolbar+DrawerLayou
  6. Android(安卓)ViewPager图片滑动
  7. 配置android app 方法数超过65k问题
  8. 在android tegra2中添加一个camera
  9. Android Installation error: INSTALL_FA
  10. TextView的一些属性