实例说明:
空值合并操作符(??)是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。
示例:
console.log(null ?? 'default string'); // default string
console.log(0 ?? 'default string') // 0
console.log(1 ?? 'default string') // 1
console.log(false ?? 'default string') // false
console.log(true ?? 'default string') // true
console.log('' ?? 'default string') // ''
console.log('哈哈' ?? 'default string') // '哈哈'与逻辑或操作符 || 的区别
逻辑或操作符会在左侧操作数为假值时返回右侧操作数。当用逻辑或操作符给变量设置默认值,左侧的值为 0 或者 '' 时,仍然会使用默认值,如下:
console.log(null || 'default string'); // default string
console.log(0 || 'default string') // default string
console.log(1 || 'default string') // 1
console.log(false || 'default string') // default string
console.log(true || 'default string') // true
console.log('' || 'default string') // default string
console.log('哈哈' || 'default string') // '哈哈'实际应用:
和可选链操作符一起使用 我们可以在使用可选链操作符时设置默认值
let user = {
name: 'xq'
}
let userName = user?.name ?? '暂无'