空值合并运算符(??)是一个逻辑运算符,当左侧操作数为 null 或 undefined 时,返回右侧的操作数,否则返回左侧操作数,出于安全原因,禁止将??运算符与 && 和 || 运算符一起使用
注意:?? 运算符的优先级非常低,只略高于?和 =
如果没有明确添加括号,不能将其与 || 或 && 一起使用
案例1:
1 const a = null ?? 'hello' 2 console.log(a) // 输出:hello ( null 符合条件所以返回右侧值 ) 3 4 const b = 0 ?? 'hello' 5 console.log(b) // 输出:0 (0不等于null也不等于undefined,所以返回左侧值)
案例2:关于输入框非空的判断
1 if ( value !== null && value !== undefined && value !== '' ){ 2 // ... 3 } 4 5 // 上面的代码过于繁琐要判断很多个条件 可以运用空值运算符进行编写 6 7 if ( value ?? '' !== '' ){ 8 // ... 9 }