如何检查值是否未定义,如果是,则将其设置为空
How to check if value is undefined and if it is, set it to null
value = value ? value : null;
如果是undefined
,我想将value
设置为null
。除了我已经写的,我还能做些什么来减少重复和更干净?
Nullish 合并运算符 (??
)
您可以使用 nullish coalescing operator,这是一个 "[...] 逻辑运算符,当其左侧操作数时 returns 它的右侧操作数是 null
或 undefined
,否则 returns 它的左侧操作数:
value = value ?? null;
当 value
为 undefined
时,这最符合您分配 null
的要求。
结合赋值,可以使用 logical nullish assignment 运算符 (??=
):
使其更加简洁
value ??= null;
这应该可以满足您的所有要求,但我们也可以看看一些可能的替代方案:
逻辑或运算符(||
)
另一种选择是 ||
运算符:
value = value || null;
或在其assignment form中:
value ||= null;
这里的区别在于,null
将被分配给任何 falsy 值,包括 0
、false
和 ''
。
三元运算符(?:
)
这是您问题的原始实现:
value = value ? value : null;
从本质上讲,这与逻辑 OR 运算符实现存在相同的问题,即 null
将分配给任何 falsy 值。然而,在这种情况下,可以通过在三元条件中包含更严格的比较(使其更加冗长)来缓解这种情况:
value = value != null ? value : null;
undefined
、null
、0
、Nan
和 ''
被视为 虚假陈述 ,所以如果你想确保只有当变量包含 undefined
值时才更新你的变量,你应该考虑使用像这样的 if 语句
if(value==undefined) value =null;
value = value ? value : null;
如果是undefined
,我想将value
设置为null
。除了我已经写的,我还能做些什么来减少重复和更干净?
Nullish 合并运算符 (??
)
您可以使用 nullish coalescing operator,这是一个 "[...] 逻辑运算符,当其左侧操作数时 returns 它的右侧操作数是 null
或 undefined
,否则 returns 它的左侧操作数:
value = value ?? null;
当 value
为 undefined
时,这最符合您分配 null
的要求。
结合赋值,可以使用 logical nullish assignment 运算符 (??=
):
value ??= null;
这应该可以满足您的所有要求,但我们也可以看看一些可能的替代方案:
逻辑或运算符(||
)
另一种选择是 ||
运算符:
value = value || null;
或在其assignment form中:
value ||= null;
这里的区别在于,null
将被分配给任何 falsy 值,包括 0
、false
和 ''
。
三元运算符(?:
)
这是您问题的原始实现:
value = value ? value : null;
从本质上讲,这与逻辑 OR 运算符实现存在相同的问题,即 null
将分配给任何 falsy 值。然而,在这种情况下,可以通过在三元条件中包含更严格的比较(使其更加冗长)来缓解这种情况:
value = value != null ? value : null;
undefined
、null
、0
、Nan
和 ''
被视为 虚假陈述 ,所以如果你想确保只有当变量包含 undefined
值时才更新你的变量,你应该考虑使用像这样的 if 语句
if(value==undefined) value =null;