在JavaScript编码中,通常会遇到空值判断,用于做容错处理,常见的控制判断方法有三目运算、与或、if else等,这些方法要写很多的冗余代码,导致维护困难,本文分享几个处理空值的方法,从而减少代码量,增强代码可读性。

1.可选链操作符 ?.

可选链操作符 ?. 允许读取位于链接对象链身处的属性的值,而不必明确验证链中的每个引用是否有效。不同之处在于,在引用为空(null或者undefined)的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。

let a;
let b = a?.name; 
//只有当 a 存在,同时 a 具有 name 属性的时候,才会把值赋给 b,否则就会将 undefined 赋值给 b。重要的是,不管 a 存在与否,这么做都不会报错。
  1. 空值合并运算符

当左边的值为 null 或 undefined 的时候就取 ?? 右边的值

let b;
let a = 0;
let c = { name:'buzhimingqianduan' }
b = a ?? c;
// 当 a 除了 undefined、或者 null 之外的任何值,b 都会等于 a,否则就等于 c。

3.空值赋值运算符 ??=

let b = '你好';
let a = 0
let c = null;
b ??= a;  // b = 0
b ??= c;  // b = '你好'
// 当 `??=` 右侧的值为 null、undefined 的时候,不会赋值给左边的变量b,其他所有值都会正常赋值给b。