ES6/ES7学习笔记 — node.js开发
最近开始学习Node.js开发,有很多基础知识和框架需要学习,所以打算将自己学习笔记记录下来,即可以和大家分享,也可以方便自己以后回顾知识。由于只是个人笔记,便不是详细的教程,有不懂的代码还请自行百度。
主要模块
- babel-register
- babel-preset-latest
- babel-polyfill 添加了Promise、Object.assign等全局方法
- babel-preset-stage-0 包含了0-3的stage,可根据需要添加,不同的stage封装了不同的插件,官方推荐是使用stage-1
介绍
es6/es7可以加快我们的开发速度,并且es7很好的配合了promise,async和await可以让我们更容易的进行异步操作。
代码介绍
合并对象或数组
方法一:
let o1 = { a: 1, b: 2, c: 3 };
let o2 = {...o1, d: 4}; // o2 = { a: 1, b: 2, c: 3, d: 4 }
let arr1 = [0, 1, 2];
let arr2 = [...arr1, 3]; // arr2 = [0, 1, 2, 3]
方法二:
let o1 = { a: 1, b: 2, c: 3 };
let o2 = Objcet.assign({}, o1, { d: 4 });
// o2 = { a: 1, b: 2, c: 3, d: 4 };
常量和变量定义
let a; // 变量
const b; // 常量
方法定义
let func1 = () => {};
类的创建
class A {
// 初始化
constructor(name) {
this.name = name;
}
// 自定义方法
func1() {
...
}
}
let a1 = new A('my name');
解构
let o1 = {a: 1, b: 2, c: 3};
const {a, b} = o1; // a = 1, b = 2
唯一键值
let id = Symbols('id'); // 生成一个唯一键位
let a = {};
a[id] = '唯一表示';
异步操作
async/await 配合Promise实现异步操作,注意需要引入babel-polyfill和stage-3以上,下面是个小例子
import 'babel-polyfill';
let sleep = (time) => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve(`sleep ${time} ms`);
}, time);
});
};
let start = async () => {
console.log('start');
let result = await sleep(2000);
console.log(result);
console.log('end');
};
start();