小编在本人的朋友圈和一些论坛中,都有看到一些前端或者后端被js中判断折磨到腾飞,特地是针对空字符串和数字0,在js中,以下6种状况是false
- undefined
- null
- false
- 0
- NaN
- ''或""(特地的,当字符串两头全是空格的时候,会判断为true)
为了解决这个痛点,es11中引入空值合并运算符。应用??运算符之前咱们为了兼容性好一些,会写这样的代码
const b = 2const a = b || 5 // 相当于给a一个默认值console.log(a) // 2
如果例子中的b的值为以上会判断为false的状况,上述例子中的值就会呈现一些问题,比方
// 实例一const b = 0const a = b || 5console.log(a) // 5// 实例二const b = falseconst a = b || 5console.log(a) // 5// 实例三const b = ''const a = b || 5console.log(a) // 5
针对实际我的项目中的需要,对于数字0,咱们有的时候只是想输入数字0,而不是数字的默认值,es11这个新个性中,只有值是undefined或者null的时候,才应用默认值,就像这样
// 实例一const b = 2const a = b ?? 6console.log(a) // 2// 实例二const b = 0const a = b ?? 6console.log(a) // 0// 实例三const b = falseconst a = b ?? 6console.log(a) // false// 实例四const b = undefinedconst a = b ?? 6console.log(a) // 6// 实例五const b = nullconst a = b ?? 6 console.log(a) // 6
大家还能够扫描二维码,关注我的微信公众号,蜗牛全栈