ES5是2009年就出来的,目前来讲在我写这篇文章的时候基本上ES6在浏览器上面尚未普及,不过Google浏览器是支持ES6语法的,谁让Google是美国生产的呢。。。javascript
ES6如今使用的地方其实仍是不少的,前端脚手架工具基本上都是支持ES6语法的,他们内部都有一套解析ES6的引擎。如vue、angular、react等。html
想要了解ES6,学习ES6用法,最好仍是去看写手册,文章都是根据手册官网来写的。ES6手册是 http://es6.ruanyifeng.com/前端
下面就看几个简单而实用的小特性。vue
须要在字符串中加入变量时,一般作法就是使用字符串拼接,如java
var param = 'b'; var str = 'a ' + param + ' c';
ES6中简单了,能够直接在字符串中添加变量node
var str = `a ${param} c`;
注意,使用的是反引号 “,而不是 ”react
例如想定义一个html代码片断,放在一行很难看,想用多行,还得用字符串拼接es6
var html =
'<div>' +
'<span>test</span>' +
'</div>';
一堆加号和引号,很麻烦npm
ES6中的反引号就能简单的解决json
var html = `<div> <span>test</span> </div>`;
很是清晰,里面还能够直接加变量,很方便
想给参数设置默认值时,须要咱们手工处理,例如
function (width, height) { var height = height || 300; var width = width || 600; ... }
ES6能够直接指定默认值
function (width=600, height=300) { ... }
例若有一个json对象
var data = {name:'dys', age:1};
想取得name,age属性的话,须要分别获取
var name = data.name; var age = data.age;
ES6能够自动获取并赋值
var {name, age} = data;
这几个示例只是比较简单的语法方面的便利特性,ES6还有一些比较深刻的改进,例如
箭头函数、Promises、Classes ……
如何使用ES6
ES6是个新东西,兼容性仍是个大问题,直接使用确定是不可行了
还好,已经有了ES6的代码转换器,能够把ES6的代码转为ES5的代码(例如 babel),可让咱们使用ES6,又不担忧兼容问题
我还没实际应用,不知道实际兼容效果是否有那么好
babel的官网 https://babeljs.io/
babel 示例
babel有gulp插件,下面是个简单的ES6代码转换示例
(1)安装环境
须要你的机器上已经装了nodejs、gulp
而后安装babel客户端
$ npm install -g babel-cli
在项目目录下安装相关插件
$ npm install gulp $ npm install --save-dev gulp-babel $ npm install --save-dev babel-preset-es2015
(2)测试脚本
用ES6方式写一个测试 a.js
var str = `hi ${name}`;
编写 gulpfile.js
var gulp = require("gulp"); var babel = require("gulp-babel"); gulp.task("default", function () { return gulp.src("a.js") .pipe(babel({presets: ['es2015']})) .pipe(gulp.dest("dist")); });
这个脚本的意思是使用babel把a.js编译并输出到dist目录下
(3)执行编译
在项目目录中执行
$ gulp
执行结束后,到dist目录下查看编译后的a.js
原文为 http://www.techug.com/post/javascript6-new-features.html