乐趣区

关于javascript:ES11中的空值合并运算符

小编在本人的朋友圈和一些论坛中,都有看到一些前端或者后端被 js 中判断折磨到腾飞,特地是针对空字符串和数字 0,在 js 中,以下 6 种状况是 false

  • undefined
  • null
  • false
  • 0
  • NaN
  • ” 或 ””(特地的,当字符串两头全是空格的时候,会判断为 true)

为了解决这个痛点,es11 中引入空值合并运算符。应用?? 运算符之前咱们为了兼容性好一些,会写这样的代码

const b = 2
const a = b || 5 // 相当于给 a 一个默认值
console.log(a)  // 2

如果例子中的 b 的值为以上会判断为 false 的状况,上述例子中的值就会呈现一些问题,比方

// 实例一
const b = 0
const a = b || 5
console.log(a) // 5

// 实例二
const b = false
const a = b || 5
console.log(a) // 5

// 实例三
const b = ''
const a = b || 5
console.log(a) // 5

针对实际我的项目中的需要,对于数字 0,咱们有的时候只是想输入数字 0,而不是数字的默认值,es11 这个新个性中,只有值是 undefined 或者 null 的时候,才应用默认值,就像这样

// 实例一
const b = 2
const a = b ?? 6
console.log(a) // 2

// 实例二
const b = 0
const a = b ?? 6
console.log(a) // 0

// 实例三
const b = false
const a = b ?? 6
console.log(a) // false

// 实例四
const b = undefined
const a = b ?? 6
console.log(a) // 6
// 实例五
const b = null
const a = b ?? 6        
console.log(a) // 6

大家还能够扫描二维码,关注我的微信公众号,蜗牛全栈

退出移动版