ES6+规范是指ES7到ES12几年之间提出的新语法、新类型、新特性。
相比于按照提出时间分类,按照类别分类更加好记
记录几个重点
1. Object.entries和Object.fromEntries()
- Object.entries(obj)
const obj = {
name: 'xs',
age: 18,
}
// 获取数组的键值对
const objEntries = Object.entries(obj);
console.log(objEntries); // [ [ 'name', 'xs' ], [ 'age', 18 ] ]
- Object.fromEntries()
const queryStr = "name=xs&age=18&height=1.88";
const queryArr = queryStr.split("&").map(item=>item.split("="));
const queryObj = Object.fromEntries(queryArr);
console.log(queryObj); // { name: 'xs', age: '18', height: '1.88' }
2. 数组flat方法以及flatMap
- flat
const nums = [10, 20, [2, 9], [[30, 40], 60], 78, [55, 88]];
const newNums = nums.flat();// 默认降维深度为1
console.log(newNums); // [ 10, 20, 2, 9, [ 30, 40 ], 60, 78, 55, 88 ]
- flatMap = map flat等于先map再flat
const message = ['Hello World', '你好啊 李银河','my name is xs'];
const newMessage = message.flatMap( item => item.split(" "));
console.log( newMessage);
// 打印结果
[
'Hello', 'World',
'你好啊', '李银河',
'my', 'name',
'is', 'xs'
]
3. 空值合并运算符??
let a = 0;
const b = a || 'default value'; // 这种判断的坏处就是a为空字符串或者0的时候也取default value
const c = a ?? 'default value'; // 可以识别a=""/0为有值,区别于undefined