在JavaScript编码中,通常会遇到空值判断,用于做容错处理,常见的控制判断方法有三目运算、与或、if else等,这些方法要写很多的冗余代码,导致维护困难,本文分享几个处理空值的方法,从而减少代码量,增强代码可读性。
1.可选链操作符 ?.
可选链操作符 ?.
允许读取位于链接对象链身处的属性的值,而不必明确验证链中的每个引用是否有效。不同之处在于,在引用为空(null或者undefined)的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。
let a;
let b = a?.name;
//只有当 a 存在,同时 a 具有 name 属性的时候,才会把值赋给 b,否则就会将 undefined 赋值给 b。重要的是,不管 a 存在与否,这么做都不会报错。
- 空值合并运算符
当左边的值为 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。