拥抱ES6(二)
es简介
es6也称es2015,在原生js的基础上新加入了一些好用的方法,加快开发。由于是新特性,很多浏览器还不支持,请使用高版本主流浏览器进行测试,如谷歌浏览器。其实还有其他的特性,这里只介绍一下相对常用的。
try catch
// old
try {
// do something
} catch (err){
console.log(err)
}
//new
try {
// do something
} catch{
// do something when error
}
使用场景
-
对具体错误信息并不关心,反正走到这里就是出问题了,可概述为程序异常
-
具体情况具体分析,es2019只是将catch的参数变成了可选
Symbol.prototype.description
console.log(Symbol("高芊").description)//高芊
使用场景
- 用于获取symbol的描述信息,使用频率不高,只能说存在即合理
Object.entries
var user={
name:"高芊",
like:"code"
}
console.log(Object.entries(user)) //[["name","高芊"],["like","code"]]
使用场景
- 对象转数组
Object.fromEntries
var arr=[["name","高芊"],["like","code"]];
console.log(Object.fromEntries(arr));
// {name:"高芊",like:"code"}
var map=new Map([["name","高芊"],["like","code"]]);
console.log(Object.fromEntries(map));
// {name:"高芊",like:"code"}
使用场景
- 对象(或Map)转数组
trimStart/trimEnd
trimLeft和trimRight分别是trimStart和trimEnd的别名,功能一样。去除空格前后,字符串长度随之改变。
var str1="高芊 ";
var str2=" 高芊";
console.log(str1.trimEnd())//高芊
console.log(str1.trimStart())//高芊
console.log(str1.trimRight())//高芊
console.log(str1.trimLeft ())//高芊
console.log(str1.length)//5
console.log(str1.trimEnd().length)//2
使用场景
- 清除空格
flat/flatMap
var arr=[[1,2,3]]
console.log(arr.flat())
//[1,2,3]
var infiniteArr=[[1,[2,[3,4]]]]
//使用Infinity解决多层次嵌套问题
console.log(infiniteArr.flat(Infinity))
//[1,2,3,4]
var msg=["我喜欢你","真的"];
console.log(msg.map(m=>m.split("")))
//[["我", "喜", "欢", "你"],["真","的"]]
console.log(msg.flatMap(m=>m.split("")))
//["我", "喜", "欢", "你","真","的"]
使用场景
- 数组扁平化