首页 > 代码库 > ES 6

ES 6

简介

 Node v4这个版本是Node和iojs合并后发布的首个稳定版本,并且为开发者带来了大量的ES6语言扩展。了解 Node.js中包括的ES6语言扩展。本课将会为你介绍如何使用这些新特性。

  Node.js 4.0.0 可以让您享受最尖端的技术,保持项目的先进性。其中对 v8 的升级几乎做到了与 Chromium / Google Chrome 同步,达到了 4.5.x,它提供了很多新的语言功能。ECMA-262 是 JavaScript 语言规范的最新版本,而且好多新特性数都是开箱即用的。这些新特性包括

  1. ‘use strict‘ :避免javascript上的一些陷阱,严格模式比非严格模式更加迅速,禁用了一些未来可能的语法
  2. let : var 不具备块级作用于的功能,只能用于函数内, let具有块级作用的功能如 {}
  3. const : 常量声明,作用于同let一样,其值不在变化

类:

  1. class : 类声明 class foo(){constructor(){}}, var f = new foo()
  2. 类表达式 : 匿名类表达式,var ploygon = class {},命名类表达式,var ploygon =class ploypon(){}
  3. static : 静态方法,var ploygon = class{constructor(){},static fn(){}},只能对象调用
  4. extends : 创建继承于某个类的子类 class a extends b{}

map:

  1. map : var m = new map([[键,值],[键,值]],...),存储键/值对,有size,set,get,has,delete,clear方法
  2. map便历方法 : keys遍历所有的键,values遍历所有的值,entries遍历所有的键值,forEach(function(){})遍历所有的键值
  3. for(var i of s) : 遍历s对象所有的值,for(var [x,y] of s)遍历s对象所有的键值
  4. for(var i in s) : 遍历s对象所有的键
  5. WeakMap : 以对象作为键,只有get,set,delete,has方法
  6. Set : 一种新的数据结构,类似数据,不会存贮重复的值,不会做类型装换及5,‘5‘是两个不同的值,有add,delete,clear,has方法,有constructor,size属性
  7. Set遍历方法 :keys,values,entries,forEach
  8. WeakSet : 只能存放对象只有add,delete,has方法没有size,constructor属性

Generator:

  1. generator : (状态机),有两个特征1,function* fn(){}表示generator  2,大括号{}内用yield = ‘‘表示内容 。有next方法返回一个对象返回一个对象属性value表示yield表示的值,done表示是否迭代完毕,false表示还没完,true表示已经迭代完毕
  2. yield* : 用于generator内部嵌套一个generator,function* fin(){yield ‘hello‘,return },function* fout(){yield* fin}

Promise:

  1. promise : 用来处理异步操作,有两个特点 1:有三种状态 Pending(进行中),Resolved(以结束,又称为Fulfilled),Rejected(未完成,以失败),三种状态只能异步操作才能打断 2:只有两种变化从Pending到Resolved和Pending到Rejected,并且变化一旦发生就不能更改了
  2. 基本用法 : 写法比较固定,var p = new Promise(function(resolved,reject){/*some code*/  if(true){resolved(‘string‘)}else{rejected(‘string‘)}}),有个then方法p.then(successedfunction,filedFunction)两个回调函数参数1表示Pending->Resolved后调用,参数2Pending->Rejected后调用,方法catch的示意图。
  3. 技术分享
  4. then方法返回promise对象,所以可以进行链式调用
  5. catch方法只有当Pending->Rejected的时候才返回一个promise对象,才可进行链式调用,通过throw抛出异常后再调用catch
  6. all方法参数可以是数组或者含有iterator接口的数据结构,成员都是Promise的实例,只有到所有的成员都返回Resolved状态的时候(类似于与门),all才返回Resolved否则返回Rejected
  7. race方法参数同all方法一样,返回最新状态变化的那个成员(不管是从Pending->Resolved,还是Pending->Rejected),改成员时promise对象(类似于或门)
  8. reject方法,参数为reason返回一个promise对象
  9. resolve方法,参数value,可以用then方法跟随者个value

Symbol :

  1. 添加一种数据类型Symbol,原有的javascript数据类型有6种:Undefined,Null,Object,Boolean,String,Number

ES 6