ecmascript6的6大特性

ES6(ECMAScript2015)的出現(xiàn),無(wú)疑給前端開(kāi)發(fā)人員帶來(lái)了新的驚喜,它包含了一些很棒的新特性,可以更加方便的實(shí)現(xiàn)很多復(fù)雜的操作,提高開(kāi)發(fā)人員的效率。

在ES5中,你可以在中直接寫可以運(yùn)行的代碼(簡(jiǎn)稱IIFE),或者一些庫(kù)像AMD。然而在ES6中,你可以用export導(dǎo)入你的類。下面舉個(gè)例子,在ES5中,module.js有port變量和getAccounts 方法:

module.exports?=?{??port:3000,??getAccounts:function(){????...??}}

在ES5中,main.js需要依賴require(‘module’) 導(dǎo)入module.js:

varservice?=require('module.js');console.log(service.port);//?3000

但在ES6中,我們將用export and import。例如,這是我們用ES6 寫的module.js文件庫(kù):

exportvarport?=3000;exportfunctiongetAccounts(url){??...}

如果用ES6來(lái)導(dǎo)入到文件main.js中,我們需用import {name} from ‘my-module’語(yǔ)法,例如:

import{port,?getAccounts}from'module';console.log(port);//?3000

或者我們可以在main.js中把整個(gè)模塊導(dǎo)入, 并命名為 service:

import*asservicefrom'module';console.log(service.port);//?3000

從我個(gè)人角度來(lái)說(shuō),我覺(jué)得ES6模塊是讓人困惑的。但可以肯定的事,它們使語(yǔ)言更加靈活了。

并不是所有的瀏覽器都支持ES6模塊,所以你需要使用一些像jspm去支持ES6模塊。

更多的信息和例子關(guān)于ES6模塊,請(qǐng)看this text不管怎樣,請(qǐng)寫模塊化的JavaScript。

如何使用ES6 (Babel)

ES6已經(jīng)敲定,但并不是所有的瀏覽器都完全支持,詳見(jiàn):http://kangax.github.io/compat-table/es6/。要使用ES6,需要一個(gè)編譯器例如:babel。你可以把它作為一個(gè)獨(dú)立的工具使用,也可以把它放在構(gòu)建中。grunt,gulp和webpack中都有可以支持babel的插件。

這是一個(gè)gulp案列,安裝gulp-babel插件:

$?npm?install?--save-dev?gulp-babel

在gulpfile.js中,定義一個(gè)任務(wù)build,放入src/app.js,并且編譯它進(jìn)入構(gòu)建文件中。

vargulp?=require('gulp'),??babel?=require('gulp-babel');gulp.task('build',function(){returngulp.src('src/app.js')????.pipe(babel())????.pipe(gulp.dest('build'));})

Node.js and ES6

在nodejs中,你可以用構(gòu)建工具或者獨(dú)立的Babel模塊 babel-core 來(lái)編譯你的Node.js文件。安裝如下:

$?npm?install?--save-dev?babel-core

然后在node.js中,你可以調(diào)用這個(gè)函數(shù):

require("babel-core").transform(ES5Code,?options);

ES6總結(jié)

這里還有許多ES6的其它特性你可能會(huì)使用到,排名不分先后:

1、全新的Math, Number, String, Array 和 Object 方法

2、二進(jìn)制和八進(jìn)制數(shù)據(jù)類型

3、默認(rèn)參數(shù)不定參數(shù)擴(kuò)展運(yùn)算符

4、Symbols符號(hào)

5、tail調(diào)用

6、Generators (生成器)

7、New data structures like Map and Set(新的數(shù)據(jù)構(gòu)造對(duì)像MAP和set)

參考文獻(xiàn):

ES6 Cheatsheet(FREE PDF)

http://webapplog.com/ES6/comment-page-1/

Understanding ECMAScript 6?by Nicolas Zakas book

http://ES6-features.org/#DateTimeFormatting

IIFE:立刻運(yùn)行的函數(shù)表達(dá)式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ES6(ECMAScript2015)的出現(xiàn),無(wú)疑給前端開(kāi)發(fā)人員帶來(lái)了新的驚喜,它包含了一些很棒的新特性,可以更加...
    gtt21閱讀 258評(píng)論 0 0
  • 在現(xiàn)在的前端開(kāi)發(fā)中,前后端分離、模塊化開(kāi)發(fā)、版本控制、文件合并與壓縮、mock數(shù)據(jù)等等一些原本后端的思想開(kāi)始...
    Charlot閱讀 5,659評(píng)論 1 32
  • ES6(ECMAScript2015)的出現(xiàn),無(wú)疑給前端開(kāi)發(fā)人員帶來(lái)了新的驚喜,它包含了一些很棒的新特性,可以更加...
    cbw100閱讀 15,554評(píng)論 3 233
  • 無(wú)意中看到zhangwnag大佬分享的webpack教程感覺(jué)受益匪淺,特此分享以備自己日后查看,也希望更多的人看到...
    小小字符閱讀 8,367評(píng)論 7 35
  • 011、MBTI測(cè)試|認(rèn)識(shí)自己是一切管理的前提認(rèn)識(shí)自己是一切管理活動(dòng)的基礎(chǔ)和前提,尤其要認(rèn)清別人眼中的自己,和周邊...
    讀書的小二郎閱讀 1,141評(píng)論 0 0

友情鏈接更多精彩內(nèi)容