美文网首页
ecmascript6的6大特性

ecmascript6的6大特性

作者: 乖乖果效36 | 来源:发表于2017-02-16 23:59 被阅读11次

ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加方便的实现很多复杂的操作,提高开发人员的效率。

在ES5中,你可以在中直接写可以运行的代码(简称IIFE),或者一些库像AMD。然而在ES6中,你可以用export导入你的类。下面举个例子,在ES5中,module.js有port变量和getAccounts 方法:

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

在ES5中,main.js需要依赖require(‘module’) 导入module.js:

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

但在ES6中,我们将用export and import。例如,这是我们用ES6 写的module.js文件库:

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

如果用ES6来导入到文件main.js中,我们需用import {name} from ‘my-module’语法,例如:

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

或者我们可以在main.js中把整个模块导入, 并命名为 service:

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

从我个人角度来说,我觉得ES6模块是让人困惑的。但可以肯定的事,它们使语言更加灵活了。

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

更多的信息和例子关于ES6模块,请看this text不管怎样,请写模块化的JavaScript。

如何使用ES6 (Babel)

ES6已经敲定,但并不是所有的浏览器都完全支持,详见:http://kangax.github.io/compat-table/es6/。要使用ES6,需要一个编译器例如:babel。你可以把它作为一个独立的工具使用,也可以把它放在构建中。grunt,gulp和webpack中都有可以支持babel的插件。

这是一个gulp案列,安装gulp-babel插件:

$ npm install --save-dev gulp-babel

在gulpfile.js中,定义一个任务build,放入src/app.js,并且编译它进入构建文件中。

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中,你可以用构建工具或者独立的Babel模块 babel-core 来编译你的Node.js文件。安装如下:

$ npm install --save-dev babel-core

然后在node.js中,你可以调用这个函数:

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

ES6总结

这里还有许多ES6的其它特性你可能会使用到,排名不分先后:

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

2、二进制和八进制数据类型

3、默认参数不定参数扩展运算符

4、Symbols符号

5、tail调用

6、Generators (生成器)

7、New data structures like Map and Set(新的数据构造对像MAP和set)

参考文献:

ES6 Cheatsheet(FREE PDF)

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

Understanding ECMAScript 6 by Nicolas Zakas book

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

IIFE:立刻运行的函数表达式

相关文章

  • ECMAScript6新特性

    ES6与ES5相比,加入了许多新的特性,下面就对这些新特性进行简要说明,同时也是以后详细学习的目标。对了,差点忘了...

  • 六、ECMAScript6 特性

    一、let 和 var let:1 只在代码块生效 2 存在暂时性死区:在代码块内,使用let命令声明变量...

  • js异步编程之Generator

    Generator介绍 Generator 的中文名称是生成器,它是ECMAScript6中提供的新特性。在过去,...

  • ecmascript6的6大特性

    ES6(ECMAScript2015)的出现,无疑给前端开发人员带来了新的惊喜,它包含了一些很棒的新特性,可以更加...

  • ECMAScript6 核心特性(一)

    一、块级作用域 ES6块级作用域 在ES5中只有全局作用域和函数作用域(如,我们必须用函数将变量包在里面来限制作用...

  • ECMAScript6 核心特性(二)

    六、数组的扩展 1、Array.from() 将伪数组对象或可遍历对象转换为真数组。典型的伪数组有函数的argum...

  • ES8主要新特性介绍

    ECMAScript6 的开发花费了四年之久,之后TC-39决定缩短开发周期,采用年度周期来发布语言的新特性...

  • ES7新特性简介

    ECMAScript6 的开发花费了四年之久,之后TC-39决定缩短开发周期,采用年度周期来发布语言的新特性...

  • ES6常用特性

    1、什么是ECMAScript6?和JavaScript什么关系? 1.1 什么是ECMAScript6? 首先说...

  • ECMAScript6简介

    一. ECMAScript6简介 ECMAScript和JavaScript的关系1996年,JavaScript...

网友评论

      本文标题:ecmascript6的6大特性

      本文链接:https://www.haomeiwen.com/subject/onkcwttx.html