模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。

一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。下面是一个JS文件,里面使用export命令输出变量。

export命令

模块功能主要由两个命令构成:export和import。export命令用于规定模块的对外接口,import命令用于输入其他模块提供的功能。
一个模块就是一个独立的文件。该文件内部的所有变量,外部无法获取。如果你希望外部能够读取模块内部的某个变量,就必须使用export关键字输出该变量。

// profile.js
export var firstName = 'Michael';
export var lastName = 'Jackson';
export var year = 1958;

上面代码是profile.js文件,保存了用户信息。ES6将其视为一个模块,里面用export命令对外部输出了三个变量。

export的写法,除了像上面这样,还有另外一种。

// profile.js
var firstName = 'Michael';
var lastName = 'Jackson';
var year = 1958;export {firstName, lastName, year};

优先考虑使用这种写法。因为这样就可以在脚本尾部,一眼看清楚输出了哪些变量。

import命令

使用export命令定义了模块的对外接口以后,其他JS文件就可以通过import命令加载这个模块(文件)。

// main.js
import {firstName, lastName, year} from './profile';function setName(element) {element.textContent = firstName + ' ' + lastName;
}

上面代码的import命令,就用于加载profile.js文件,并从中输入变量。import命令接受一个对象(用大括号表示),里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块(profile.js)对外接口的名称相同。

模块的整体加载

除了指定加载某个输出值,还可以使用整体加载,即用星号(*)指定一个对象,所有输出值都加载在这个对象上面。

// circle.jsexport function area(radius) {return Math.PI * radius * radius;
}
export function circumference(radius) {return 2 * Math.PI * radius;
}

整体加载

import * as circle from './circle';console.log('圆面积:' + circle.area(4));
console.log('圆周长:' + circle.circumference(14));

export-default命令

从前面的例子可以看出,使用import
命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。但是,用户肯定希望快速上手,未必愿意阅读文档,去了解模块有哪些属性和方法。

// export-default.js
export default function () {console.log('foo');
}
  • 使用export default时,对应的import语句不需要使用大括号;不使用export default时,对应的import语句需要使用大括号。
  • export default命令用于指定模块的默认输出。

ES2015 Module(模块)相关推荐

  1. 【ES6】Module模块详解

    [ES6]Module模块详解 一.Module的由来 二.严格模式 三.export命令 四.import命令 查看更多ES6教学文章: 参考文献 引言:由于两个JS文件之间相互使用必须通过一个ht ...

  2. 【Android Gradle 插件】settings.gradle 配置文件 ( 配置基本作用 | include 函数用法 | 目录层级配置 | 修改 Module 模块构建脚本名称 )

    文章目录 一.settings.gradle 配置 1.基本作用 2.include 函数用法 3.Module 目录层级配置 4.修改 Module 模块的 build.gradle 默认构建脚本名 ...

  3. Ruby的module(模块)

    定义模块用module...end .模块与类非常相似,但是: 模块不可以有实例对象: 模块不可以有子类. #Module(模块) module Module1   def sqrt(num, rx= ...

  4. 简单实例讲解linux的module模块编译步骤

    简单实例讲解linux的module模块编译步骤 (2014-10-24 10:19:17) 标签: module linux 分类:Linux/Unix 本文将直接了当的带你进入linux的模块编译 ...

  5. html模块殃射,【Web前端问题】webpack打包后,module模块中的函数无法在html标签的事件中调用?...

    折腾了好久,求大佬指点~~最近才开始接触webpack以及ES6的module,可能理解的有问题吧...希望大佬来指点一下我这个菜鸟. 我的想法是在一个module中定义函数,在HTML的中用oncl ...

  6. 指定module_一个缺失已久的特性 — module模块

    在ES6之前,Javascript还不支持原生的模块化.如果要实现模块化,我们要借助一些框架,比如:requireJS或者seaJS等:什么?没用过也没听过这些框架?没关系,它们不是我们今天要讲的重点 ...

  7. 第二十节:一个缺失已久的特性 — module模块

    在ES6之前,Javascript还不支持原生的模块化.如果要实现模块化,我们要借助一些框架,比如:requireJS或者seaJS等:什么?没用过也没听过这些框架?没关系,它们不是我们今天要讲的重点 ...

  8. Android 驱动(8)---简单实例讲解linux的module模块编译步骤

    简单实例讲解linux的module模块编译步骤 原博文地址http://blog.sina.com.cn/s/blog_4ba5b45e0102v25h.html ----------------- ...

  9. 5.Module模块

    (1).模块化的初衷 现在的web系统越来越庞大.复杂,需要团队分工,多人协作,大型系统的javascript文件经常存在复杂的依赖关系,后期的维护成本会越来越高. JavaScript模块化正式为了 ...

  10. IDEA快速创建module模块

    1.新建模块 File->New->Module... 选择Maven 输入Name.Location等 2.配置模块 将以下内容增加到配置文件jeecg-boot-master-zc\j ...

最新文章

  1. 为了进行差错控制,必须对传送的数据帧进行校验。在局域网中广泛使用的校验方法是循环冗余校验。当接收端发现错误后采取的措施是
  2. 羡慕嫉妒!看了腾讯月收入 8 万 的支出账单不恨了 | 每日趣闻
  3. Objective-C property属性解析
  4. js如何去除多个cookie?
  5. 【Android】Android开发初学者实现拨打电话的功能,拨打电话app小demo实现
  6. cuda入门——改良第一个 CUDA程序
  7. java dom获取属性值_java – 获取dom节点的属性
  8. 使用ueditor实现多图片上传案例——实体类(Shopping.java)
  9. 三行代码生成验证码并转换成base64
  10. jsp里加java代码,利用静态内部类为您的代码添加辅助功能-JSP教程,Java技巧及代码...
  11. 今夕何夕影迷小伙伴,喜欢的壁纸都在高图网
  12. 产品经理这个梗是怎么来的?
  13. 面面俱到,这 23 个公共数据集赶紧Mark起来!
  14. Java判断100到200之间所有的素数,并且输出这些素数
  15. 【小笔记】大数据量excel解析工具性能对比
  16. EDU教育网邮箱申请注册享受Apple、微软、Github等产品教育优惠附带各优惠申请教程
  17. 在 Java 中将 Word 转换为 PDF
  18. xp设置允许客户端远程连接_远程删除Windows XP客户端中的用户配置文件
  19. java把一个文件转化为byte字节_java把一个文件转化为byte字节
  20. git 删除本地仓库

热门文章

  1. Oracle Latch的学习【原创】
  2. Kteer软件 创建.ktr文件
  3. MLIR再深入 —— CodeGen 总结
  4. 扩展卢卡斯 (板子)
  5. CC控制服务的设计和侦测方法综述
  6. c语言链表中next作用,C语言链表详解
  7. C语言if( x)的意思,c语言 if(!x)中条件!x是什么意思
  8. Tracy JS 小笔记 - 数据结构 栈,队列,链表,字典,集合,哈希表(散列表)
  9. PyQt5入门(二十五)QSS(下)三种设置背景色和背景图片的方式
  10. 恍然若梦:南京珠江路一晚安利-传销经历。