好久没更新了,费劲吧啦的终于搞出来一篇稍微实用的文章,介绍ES2020中的两个好玩的新特性。这下凑够300字了,然而并没有。
1、可选链操作符 ?.
说明:允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。
比如:
// 期望值obj = { a: { b: 'some strs' }}// 实际值obj = {}
如果 a 属性 不存在,obj.a.b 就会报错,以前的写法:
obj.a && obj.a.b
现在,可以这么写:
obj.a?.b
如果 obj上没有 a属性,obj.a 就是 undefined ,上面的表达式就会返回 undefined,不会报错。
2、空值合并运算符 ??
说明 :如果 ?? 前面是 null 或 undefined,取后面的默认值。以前使用 || ,比如:
name || 'xiaobai'
如果 name 是空值('' false undefined null 0)的时候,就使用默认值 xiaobai。
如果只想是 null 或 undefined 的时候使用默认值,就可以使用 ??
比如:
'' ?? 'abc' 返回 ''
'' || 'abc' 返回 'abc'
兼容性:都不支持IE
大概了解后,个人感觉还是 “可选链操作符” 更实用一些。
获取更多前沿技术,关注 “小白前端杂货铺”