- 导出一个模块对象(es5):
- module.exports={
- add:add,
- sub:sub
- }
- 导出一个模块对象(es6):
- module.exports={
- add,
- sub
- }
- 注意:上es6这种写法属性名和属性值变量是同一个,否则要分开写
- module.exprots={
- addFn:add,
- sub
- }
- //es5
- module.exports={
- addFun:function(x,y){
- return x+y;
- }
- }
- //es6
- module.exports={
- addFun(x,y){
- return x+y;
- }
- }
- calc.js中有两个函数:
- function add(){}
- function sub(){}
-
- //写法一
-
- es5写法:
- module.exports.add = add;
- module.exports.sub = sub;
-
- es6写法:
- exprot function add(){}
- exprot function sub(){}
-
- 使用:
- var calc = require('./calc.js');
-
- //写法二
- es5:
- module.exports = {add:add,sub:sub};
- es6:
- exprot default{
- add,sub
- }
- //表示取得calc.js中所有暴露出来的对象(es6)
- import calc from './calc.js'
- //只获取到calc.js中的add方法(按需获取)
- import {add} from './calc.js'
只能通过 import 对象名称 from '模块路径'
不能通过 import {对象名称} from '模块路径'
需要单独导出对象或者方法:
export function add(){}
export function sub(){}
使用:
import {add, sub} from '模块路径
直接使用 add,sub方法
注意:不能直接使用 import 对象名称 from '模块路径'
之前在学习 ES6 的时候,看到 Set 和 Map,不知道其应用场景有哪些,只觉得很多时候会用在数组去重和数据存储,后来慢慢才领悟到 Set 是一种叫做集合的数据结构,Map 是一种叫做字典的数据结构。
自从有了webpack之后,我们这些jscoder似乎得到了前所未有的解放,箭头函数,对象解构,let,const关键字,以及class、extends等等,webpack会帮我们把这些es6代码转换成浏览器能够识别的es5代码,那么有多少人真正的看过,babel转换之后的代码呢?
迭代器是被设计专用于迭代的对象,带有特定接口。所有的迭代器对象都拥有 next() 方法,会返回一个结果对象。该结果对象有两个属性:对应下一个值的 value ,以及一个布尔类型的 done
为了使JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言,ECMAScript 6.0(简称ES6)在标准中添加了很多新的特性。我们将用几篇文章总结一下ES6标准中一些常用的新特性。本片文章主要讲解ES6中的let、const命令,并区分其与var命令的区别。
构造函数的prototype属性,在 ES6 的“类”上面继续存在。事实上,类的所有方法都定义在类的prototype属性上面。
Reflect这个对象在我的node(v4.4.3)中还没有实现, babel(6.7.7)也没有实现 ,新版本的chrome是支持的, ff比较早就支持Proxy和Reflect了,要让node支持Reflect可以安装harmony-reflect ;
在ES5之前,如果属性名是个变量或者需要动态计算,则只能通过 对象.[变量名] 的方式去访问,而且这种动态计算属性名的方式 在字面量中 是无法使用的
var存在的问题可以重复声明,无法限制修改,没有块级作用域 (在全局范围内有效),存在变量提升
ES6提供了新的数据结构Set,Set对象不是数组, 可以用来保存对象或者基本类型, 所有保存的值都是唯一的, chrome浏览器>38和FF>13,以及nodeJS,对Set支持良好, 以下的一些代码,都可以拷贝到控制台直接运行哦;
const是用来定义常量的,而且定义的时候必须初始化,且定义后不可以修改。const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!