JavaScript6里出现了哪些新语法、新特征?

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

相关文章
相关标签/搜索