ECMAScript6 ES6 ES2015新语法总结
1、let定义变量:不能重复定义、作用域
2、const:定义常量
3、解构赋值:let [a,b,c] = [1,2,3];// a=1 b=2 c=3
4、箭头函数:
function fn(a,b){ return a + b; } //等价于 let fn = (a,b) => { return a + b; } //且等价于(若函数中只有一条return语句时) let fn = (a,b) => a + b; //若函数只有一个参数a let fn = a => a + b;
5、数组新方法:
map映射:
let arr = [18,26,60,58,95,84]; let arr2 = arr.map(item => item>=60);/*[false, false, true, false, true, true]*/
6、promise的用法: 对于异步回调方法, 如果异步过多, 并且后面的异步要依赖前面异步的执行结果, 那多会有多层嵌套, 代码维护比较复杂, promise就是专门为了解决这种场景。实例如下:
promseTest:function(){ let p = new Promise(function(resolve,reject){ setTimeout(function(){ console.log("第一个异步执行完成"); resolve('第一个异步结果'); },2000); }); return p; }, promseTest1:function(){ let p = new Promise(function(resolve,reject){ setTimeout(function(){ console.log("第二个异步执行完成"); resolve('第二个异步结果'); },2000); }); return p; }, onLoad: function (options) { let _this = this; this.promseTest().then(function(data){ console.log(data);//第一个异步结果 return _this.promseTest1();//返回另外一个异步方法,在下一个then中执行 }).then(function(data){ console.log(data);//第二个异步结果 }); },
7、 Set 数据类型: 类似数组, 成员不重复
let set = new Set([1,2,2,3,4]); //1 2 3 4
set.add(5); set.has(1); set.delete(1);
console.log(set.size); //4
//数组去重
let set = new Set([1,2,2,3,4]); //数组转Set(自动去重)
let arrUnique = Array.form(set); //Set转数组
或 let arrUnique = [...new Set([1,2,2,3,4])]; //数组一步去重
//set集合操作
let a = new Set([1,2,3]);
let a = new Set([4,3,2]);
//Set求并集
let unique = new Set([...a,...b]); //Set(4) {1, 2, 3, 4}
//Set求交集
let com = new Set([...a].filter(x => b.has(x))); //Set(2) {2, 3}
//Set求差集
let diff = new Set([...a].filter(x => !b.has(x))); //Set(1) {1} a相对于了的差集
8、 Map 可以使用任何数据类型做为key的object
const m = new Map();
const o = {p:'hello world'};
m.set(o,"content");
console.log(m);
//数组定义map
const map = new Map([
['name', '张三'],
['title', 'Author']
]);
//相关属性
m.size; m.get('a'); m.set('a','a'); m.has('a'); m.delete('a'); m.clear();
let arr = [...map]; //Mmap 转数组 //也可以转object json