JavaScript 中空值判断的常用用法

对项目中的有些空值判断进行容错处理,例如三目运算、|、&、if else 等,下面有几个处理空值的方法:

!

用 ! 做类型判断,通常用来与变量求布尔值,除了 null、undefined、0、NaN 和空字符串为 true 之外,其余都为 false。

// 都为 true
!null
!undefined
!''

// 都为false
!100
!'hello'

!!

!! 用来做类型判断,对第一次 ! 操作后的类型进行取反,可以简化 null、undefined和空字符串的判断逻辑。

var a
if (a != null && typeof(a) != undefined && a != '') {...}

// 简写为
if (!!a) {...}

可选链(.?)

let a
let b
if (!!a) {
  b = a.name
}

// 相当于
let b = a?.name

通常用来判断对象的某个属性的兼容问题

let list = res && res.data && res.data.rows

// 相当于
let list = res?.data?.rows

空值合并运算符(??)

除了 undefined、null 之外的值等于 c,否则为 a

let b
let a = 0
let c = { name: 'zhangsan' }

if (!!a || a === 0) {
  b = a
} else {
  b = c
}

// 相当于
b = a ?? c

只有左侧为 null 和 undefined 时,才返回右侧的数.

console.log("" || "xx") 		// xx
console.log(0 || "xx") 			// xx
console.log(null || "xx")		// xx
console.log(undefined || "xx")  // xx

console.log("" ?? "xx") 		// ''
console.log(0 ?? "xx") 			// 0
console.log(null ?? "xx") 		// xx
console.log(undefined ?? "xx")  // xx

空值赋值运算符(??=)

仅在左侧为 null 或 undefined 时对其赋值.

let i = 'hello'
let a = ''
let b = 0
let c = NaN
let d = null
let e = undefined

a ??= i;  // a = ''
b ??= i  // b = 0
c ??= i  // c = NaN
d ??= i  // d = 'hello'
e ??= i  // e = 'hello'
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值