es6-----部分新特性详解

ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,咱们已经进入中国梦版本了)。上一次标准的制订仍是2009年出台的ES5。目前ES6的标准化工做正在进行中,预计会在14年12月份放出正式敲定的版本。但大部分标准已经就绪,且各浏览器对ES6的支持也正在实现中javascript

一,箭头表达式(lambda表达式)java

    咱们知道在JS中回调是常常的事,而通常回调又以匿名函数的形式出现,每次都须要写一个function,甚是繁琐。当引入箭头操做符后能够方便地写回调了。请看下面的例子。es6

     

var array = [1, 2, 3];
 //传统写法             
array.forEach(function(v, i, a) {
console.log(v);
});
//ES6
array.forEach((v,i) => {console.log(v);console.log(i)});

 

二.类的支持web

 ES6中添加了对类的支持,引入了class关键字(其实class在JavaScript中一直是保留字,目的就是考虑到可能在之后的新版本中会用到,如今终于派上用场了)。JS自己就是面向对象的,ES6中提供的类 实际上只是JS原型模式的包装。如今提供原生的class支持后,对象的建立,继承更加直观了,而且父类方法的调用,实例化,静态方法和构造函数等概念都更加形象化。promise

 

class Animal {
	//ES6中新型构造器
    constructor(name) {
        this.name = name;
    }
    //实例方法
    sayName() {
        console.log('My name is '+this.name);
    }
}
//类的继承
class Programmer extends Animal {                         //extends 继承于
    constructor(name) {
    	//直接调用父类构造器进行初始化
        super(name);
    }
    program() {
        console.log("I'm coding...");
    }
}
//测试咱们的类
var animal=new Animal('dummy'),
wayou=new Programmer('wayou');
animal.sayName();//输出 ‘My name is dummy’
wayou.sayName();//输出 ‘My name is wayou’
wayou.program();//输出 ‘I'm coding...’

  

三.默认参数值浏览器

    如今能够在定义函数的时候指定参数的默认值了,而不用像之前那样经过逻辑或操做符来达到目的了。异步

 

function sayHello(name){
	//传统的指定默认参数的方式
	var name=name||'dude';
	console.log('Hello '+name);
}
//运用ES6的默认参数
function sayHello2(name='dude'){
	console.log(`Hello ${name}`);
}
sayHello();//输出:Hello dude
sayHello('Wayou');//输出:Hello Wayou
sayHello2();//输出:Hello dude
sayHello2('Wayou');//输出:Hello Wayou

 

四.let和const关键字函数

       能够把let当作var,只是它定义的变量被限定在了特定范围内才能使用,而离开这个范围则无效。const则很直观,用来定义常量,即没法被更改值的变量。测试

      

for (let i=0;i<2;i++){
console.log(i);//输出: 0,1
}
再如:
function example(){
let a=1; //此a的做用域仅限于 example方法
console.log(a)
}

 

五.promisesthis

      Promises是处理异步操做的一种模式,以前在不少三方库中有实现,好比jQuery的deffered 对象。当你发起一个异步请求,并绑定了.when(), .done()等事件处理程序时,其实就是在应用promise模                式。

 

//建立promise
var promise = new Promise(function(resolve, reject) {
    // 进行一些异步或耗时操做
    if ( /*若是成功 */ ) {
        resolve("Stuff worked!");
    } else {
        reject(Error("It broke"));
    }
});
//绑定处理程序
promise.then(function(result) {      // .then方法中有2个回掉。第一个为成功回掉,第二个为失败回掉。若是promise执行的是resolve则执行成功回掉,若是是reject,则执行失败回掉
	//promise成功的话会执行这里
    console.log(result); // "Stuff worked!"
}, function(err) {
	//promise失败会执行这里
    console.log(err); // Error: "It broke"
});

  

以上5个是最新最经常使用的es6新特性

相关文章
相关标签/搜索