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();