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

标签 javascript variables null undefined

value = value ? value : null;

我要设置valuenull如果是undefined 。除了我已经写过的内容之外,我还能做些什么来减少重复和更干净?

最佳答案

空合并运算符 (??)

您可以使用nullish coalescing operator ,这是一个“[...]逻辑运算符,当其左侧操作数为nullundefined时,它返回其右侧操作数,并且否则返回其左侧操作数":

value = value ?? null;

这最适合您在 valueundefined 时分配 null 的要求。 与赋值相结合,可以通过使用 logical nullish assignment 使这变得更加简洁。运算符(??=):

value ??= null;

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

逻辑或运算符 (||)

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

value = value || null;

或者在其assignment form中:

value ||= null;

此处的区别在于,将为任何 falsy 分配 null值,包括 0false''

三元运算符(?:)

这是您问题的原始实现:

value = value ? value : null;

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

value = value != null ? value : null;

关于javascript - 如何检查值是否未定义,如果是,则将其设置为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69523701/

相关文章:

javascript - Angular2 - 将参数传递给动态生成的组件?

javascript - 为什么我的 svg 嵌入的 javascript 不能在 html 文档中工作?

javascript - 在 ng-template 中访问 FormArray 引用

我可以相信 (uintptr_t)NULL 等于零吗?

c# - 尽管有 ReSharper [NotNull] 注释,我是否应该添加显式空检查?

postgresql - 当 n<2 时,postgres STDDEV 聚合行为

javascript - 图像响应

java - 在 java 字符串中使用 intern

variables - 发送邮件消息失败,因为附件丢失(变量变乱)

php - 将mysql数据输出到jquery的变量中