繁体   English   中英

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

[英]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 ,这是一个“[...] 逻辑运算符,当其左侧操作数为nullundefined时返回其右侧操作数,否则返回其左侧操作数”

value = value ?? null;

这最符合您在value undefined时分配null的要求。 结合赋值,这可以通过使用逻辑空值赋值运算符 ( ??= ) 变得更加简洁:

value ??= null;

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

逻辑或运算符 ( || )

另一种选择可能是|| 操作员:

value = value || null;

或以其分配形式

value ||= null;

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

三元运算符 ( ?: )

这是您问题的原始实现:

value = value ? value : null;

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

value = value != null ? value : null;

undefined , null , 0 , Nan''被认为是一个虚假的声明,所以如果你想确保你只更新你的变量,当它持有一个undefined的值时,你应该考虑使用这样的if 语句if(value==undefined) value =null;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM