value = value ? value : null;
我要设置value
至null
如果是undefined
。除了我已经写过的内容之外,我还能做些什么来减少重复和更干净?
最佳答案
空合并运算符 (??
)
您可以使用nullish coalescing operator ,这是一个“[...]逻辑运算符,当其左侧操作数为null
或undefined
时,它返回其右侧操作数,并且否则返回其左侧操作数":
value = value ?? null;
这最适合您在 value
为 undefined
时分配 null
的要求。
与赋值相结合,可以通过使用 logical nullish assignment 使这变得更加简洁。运算符(??=
):
value ??= null;
这应该可以满足您的所有要求,但我们还可以看看一些可能的替代方案:
逻辑或运算符 (||
)
另一种选择可能是 ||
运算符:
value = value || null;
或者在其assignment form中:
value ||= null;
此处的区别在于,将为任何 falsy 分配 null
值,包括 0
、false
和 ''
。
三元运算符(?:
)
这是您问题的原始实现:
value = value ? value : null;
本质上,这表现出与逻辑 OR 运算符实现相同的问题,因为将为任何 falsy 值分配 null
。然而,在这种情况下,可以通过在三元条件中包含更严格的比较来缓解这种情况(使其更加冗长):
value = value != null ? value : null;
关于javascript - 如何检查值是否未定义,如果是,则将其设置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69523701/