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新特性

相關文章
相關標籤/搜索