记一个常用操作: ?? 逻辑空合并运算符
/*
* 逻辑空处理,防止接口将null当成字符串处理 @obj
* 【??】 逻辑空合并操作符,只会对 null 和 undefined 进行判断,
* 不对其他Falsy值(比如 0、false、''、NaN: 非数值(Not-a-Number))生效
*/
nullToEmpty(obj) {
let n = {};
for (let i in obj) {
n[i] = obj[i] ?? "";
}
return n;
},
在JavaScript中,Falsy 值是指在条件判断时会被当作 false
的值。以下是JavaScript中被视为 Falsy 值的一些情况:
-
false
: 布尔值false
-
0
: 数值0
-
''
: 空字符串 null
undefined
-
NaN
: 非数值(Not-a-Number)
当条件判断时,如果一个值为以上列出的任何一个,它会被当作 false
,其他情况则被当作 true
。这些值被称为 Falsy 值,因为它们在条件判断中的行为类似于布尔值 false
。
举个例子,以下的条件判断中,如果变量 x
的值是 Falsy 值,条件判断会认为 x
是 false
,否则会认为 x
是 true
:
if (x) {
// 如果 x 是非 Falsy 值
} else {
// 如果 x 是 Falsy 值
}
可选链操作符(?.)
res.result?.total == 0
// 这是一个可选链操作符(?.)的用法。首先,它检查res.result是否存在(不是null或undefined)。如果res.result存在,那么表达式会继续执行total == 0,检查res.result对象的total属性是否等于0。如果res.result不存在(比如是null或undefined),则整个可选链表达式的结果为undefined,并且在条件判断中会被视为假。
网友评论