如何检查值是否未定义,如果是,则将其设置为空

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 它的右侧操作数是 nullundefined,否则 returns 它的左侧操作数:

value = value ?? null;

valueundefined 时,这最符合您分配 null 的要求。 结合赋值,可以使用 logical nullish assignment 运算符 (??=):

使其更加简洁
value ??= null;

这应该可以满足您的所有要求,但我们也可以看看一些可能的替代方案:

逻辑或运算符(||

另一种选择是 || 运算符:

value = value || null;

或在其assignment form中:

value ||= null;

这里的区别在于,null 将被分配给任何 falsy 值,包括 0false''

三元运算符(?:)

这是您问题的原始实现:

value = value ? value : null;

从本质上讲,这与逻辑 OR 运算符实现存在相同的问题,即 null 将分配给任何 falsy 值。然而,在这种情况下,可以通过在三元条件中包含更严格的比较(使其更加冗长)来缓解这种情况:

value = value != null ? value : null;

undefinednull0Nan'' 被视为 虚假陈述 ,所以如果你想确保只有当变量包含 undefined 值时才更新你的变量,你应该考虑使用像这样的 if 语句 if(value==undefined) value =null;