-
Default Paramters (默认参数) es6中,可以直接把默认值放在函数声明里
-
Template Literals (模版文本) 在ES6中可以使用新的${NAME},并将其放在反括号里
-
Multi-line String (多行字符串) 多行自符的时候,在ES6中仅仅使用反引号就可以了
-
Destructuring Assignment (解构赋值)
下面是书上写的:
解构可能是一个比较难以掌握的概念。 我们先从一个简单的赋值讲起, 其中 house 和 mouse 是 key ,同时 house 和 mouse 也是一个变量, 在 ES5 中是这样的 :
Var data = $('body').data(); //data拥有两个属性 house 和 mouse
House = data.house
Mouse = data.mouse
在Node.js中ES5是这样的:
Var jsonMiddleware = require('body-parse').jsonMiddleware;
Var body = req.body
Username = body.username
Password = body.password
在ES6中,可以使用以下语句来代替上面的ES5代码:
var {house,mouse} = ${'body'}.data();
var {jsonMiddleware} = require('body-parse')
var {username,password} = req.body
这个同样也适用于数组,是非常赞的用法:
var [co11,co12] = $('.cloum')
[line1,line2,line3,,line5] = file.split('n');
-
Enhanced Object Literals (增强的对象文本)
-
Arrow Function (箭头函数)
-
Promise
实现 Promise 是一个有争议的话题,有人说我们不需要Promise,仅仅使用异步,生成器,回调等就够了,
但是许多人尝试在写多个嵌套的回调函数时基本上会在超过三层之后产生‘’回调地狱‘。
令人高兴的是,在ES6中有标准的Promise实现。
下面是一个简单的用setTimeout()函数实现的一步延迟加载函数:
setTimeout{function(){
Console.log{'YAY!'};
},1000}
在ES6中,可以使用Promise重写,虽然在此实例中并不能减少大量的代码,甚至多写了数行,但是逻辑却清晰了不少:
var wait1000 = new Promise((resolve,reject)=>{
setTimeout(resolve,1000)
}).then(()=>{
console.log('YAY!')
})
-
块作用域构造let let限制块级作用域,var限制函数作用域
-
Classes (类)
-
Modules (模块)