const b = 0const a = b || 5console.log('a', a) // 5
b等于0的时候默认是false,但是我们想要拿到的是 0,这样就会存在问题
const b = falseconst a = b || 5console.log('a', a) // 5
如果我们想获取 false, 用这种写法也是不合适的
const b = ''const a = b || 5console.log('a', a) // 5const b = undefinedconst a = b || 5console.log('a', a) // 5const b = nullconst a = b || 5console.log('a', a) // 5
当b为 空、undefined、null 的时候,会跳过b
可是有时候我们只想排除 null 或者 undefined 使用 || 运算符就不合适了
这时候就需要用上 空值合并运算符 ??
const b = nullconst a = b ?? 5console.log('a', a) // 5const b = undefinedconst a = b ?? 5console.log('a', a) // 5const b = ''const a = b ?? 5console.log('a', a) //const b = 0const a = b ?? 5console.log('a', a) // 0const b = falseconst a = b ?? 5console.log('a', a) // false
