es6新特性:
1、向对象添加属性
const user = { id: 1, name: 'unique'}
const userWithPass = { ...user, password: 'pass' }
//=> userWithPass {id: 1, name: 'unique',password: 'pass'}
2、合并对象
const content= { id: 1, name: '暴富' }
const context= { id: 2, password: 'pass' }
const user1 = { ...content, ...context}
//=> { id: 10, name: 'Howard Moon', password: 'pass' }
3、类
//类的定义
class Animal {
//ES6中新型构造器
constructor(name) {
this.name = name;
}
//实例方法
sayName() {
console.log('My name is '+this.name);
}
}
//类的继承
class Programmer extends Animal {
constructor(name) {
//直接调用父类构造器进行初始化
super(name);
}
program() {
console.log("I'm coding...");
}
}
//测试我们的类
var animal=new Animal('dummy'),
wayou=new Programmer('wayou');
animal.sayName();//输出 ‘My name is dummy’
wayou.sayName();//输出 ‘My name is wayou’
wayou.program();//输出 ‘I'm coding...’
4、promise
//创建promise
var promise = new Promise(function(resolve, reject) {
// 进行一些异步或耗时操作
if ( /*如果成功 */ ) {
resolve("Stuff worked!");
} else {
reject(Error("It broke"));
}
});
//绑定处理程序
promise.then(function(result) {
//promise成功的话会执行这里
console.log(result); // "Stuff worked!"
}, function(err) {
//promise失败会执行这里
console.log(err); // Error: "It broke"
5、for of 返回值
var someArray = [ "a", "b", "c" ];
for (i of someArray) {
console.log(i);//输出 a,b,c
}
5、箭头函数
var array = [1, 2, 3];
//传统写法
array.forEach(function(v, i, a) {
console.log(v);
});
//ES6
array.forEach(v = > console.log(v));