美文网首页ES6
ES11中的空值合并运算符

ES11中的空值合并运算符

作者: 技术小王 | 来源:发表于2021-07-31 15:09 被阅读0次

小编在自己的朋友圈和一些论坛中,都有看到一些前端或者后端被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

相关文章

  • ES11中的空值合并运算符

    小编在自己的朋友圈和一些论坛中,都有看到一些前端或者后端被js中判断折磨到起飞,特别是针对空字符串和数字0,在js...

  • Swift 运算符

    合并空值运算符:?? 合并空值运算符(a ?? b) 如果可选项 a 有值则展开,如果没有值,是nil,则返回默认...

  • 合并空值运算符

    合并空值运算符 合并空值运算符(a ?? b):如果可选项 a 有值则展开,如果没有值,是nil,则返回默认值 b...

  • Optional:合并空值运算符

    合并空值运算符 合并空值运算符(a ?? b)如果可选项 a 有值则展开,如果没有值,是nil,则返回默认值 b...

  • JavaScript 中目前比较少见的表达式

    ??:空值合并运算符es2020[https://developer.mozilla.org/zh-CN/docs...

  • 合并空值运算符

    今天继续学习 极客时间 上 张杰 老师的 Swift 的课程,看的真是辛苦,感觉讲的好慢。我这强迫症又不愿意跳着学...

  • 合并空值运算符

    合并空值运算符 a ?? b, 如果可选项a有值则展开,如果没有值,返回nil,则返回默认值b。 表达式a必须是一...

  • 复习:ES6~ES12的一些新特性归纳(ES11、ES12)

    ES11相关的特性(2020) Nullish coalescing Operator(空值处理): 表达式在??...

  • 谈谈 JavaScript 中的空值合并操作符 Nullish

    空值合并运算符 (??) 是一个逻辑运算符,仅当左侧(第一个参数)为空或未定义时才返回运算符(第二个参数)的右侧。...

  • 理解php中的?:与??

    三元运算符(?:) php 5.3 空合并运算符(??)php 7

网友评论

    本文标题:ES11中的空值合并运算符

    本文链接:https://www.haomeiwen.com/subject/lsfkvltx.html