ES6的冷门小知识,一起学起来叭

1.数组的flat方法(将多维数组转成扁平数组)

let arr = [1, [2, [3, [4, 5]]], 6]
let flatArr = arr.flat(Infinity)
console.log(flatArr)
//(6) [1, 2, 3, 4, 5, 6]
//传入Infinity,不用管是多少个维度都可以直接转成一维
  1. …展开运算符(合并),原来不仅可以合并数组还可以合并对象呐!!!
    惊不惊喜,意不意外!!!
    new Set(去重)
let arr1 = [1,2,3]
let arr2 = [3,4,5,6]
let arr3 = [...new Set([...arr1, ...arr2])]
//除了合并数组,是不是还得考虑下去重呢,所以new Set闪亮登场了
let obj1 = {a:1}
let obj2 = {b:2}
let obj3 = {...obj1,...obj2 }
console.log(obj3)
//{a: 1, b: 2}

3.Object.keys()对象的方法
用于获取对象自身所有可枚举的属性
效果类似于for…in

let obj = {a:1,b:2,c:3}
let objKey = Object.keys(obj)
console.log(objKey)
//['a', 'b', 'c']

4.Object.values()对象的方法

let obj = {a:1,b:2,c:3}
let objVal = Object.values(obj)
console.log(objVal)
//[1, 2, 3]

5.数组的实例方法includes

let state = 1
if(state===1 || state===2 || state===3) { alert('判断成功') }

当判断条件这么多的时候,一个个往后排是不是很low,这个时候includes的强大之处就要体现出来了

let state = 2
const stateArr = [1,2,3]
if(stateArr.includes(state)) { alert('includes太好使了叭!')}

6.可选链操作符?. 会用不

let obj = undefind
let name = obj.name
console.log(name)

在这里插入图片描述

如果obj为undefined或者null时,浏览器直接报错,会阻碍进程,这个时候咋办?
嘿! 可选链来帮你啊

let obj = undefind
let name = obj?.name
console.log(name)

在浏览器打印的时候还是会报错,是因为浏览器是ES5的,实际在代码进程中不会被阻碍了(我是这么理解的,如有不对欢迎指教)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值