JavaScript 等价于 ?? C#中的运算符[重复]

Posted

技术标签:

【中文标题】JavaScript 等价于 ?? C#中的运算符[重复]【英文标题】:JavaScript equivalent of ?? operator in C# [duplicate] 【发布时间】:2015-08-04 07:40:32 【问题描述】:

有没有等价的?? javascript 中存在于 C# 中的运算符来击败“未定义”检查? 例如:

var count = something ?? 0;

【问题讨论】:

var count = (typeof something === 'undefined') ? 0 : something; 这是@Zee 答案的更详细版本(可以说更安全)。 @evolutionxbox:我认为你的价值观是错误的 @musefan 你是对的,我做到了。 【参考方案1】:

使用逻辑或

var count = something || 0;

【讨论】:

请注意,这不适用于布尔值:如果 someflag 为假,someflag || true 将返回真 这不会也因 int 为 0 而失败吗? 是的,这个检查会给你错误的结果,操作数左侧的任何东西都可能合法地是假的。零是这里明显的问题,但在这种情况下无关紧要。我已经被这个咬过很多次了,我尽量避免将它用于现在比较对象以外的任何事情。

以上是关于JavaScript 等价于 ?? C#中的运算符[重复]的主要内容,如果未能解决你的问题,请参考以下文章

js类型转换

C# 中的三元运算符关联性 - 我可以依赖它吗?

什么是 C# 的 VB.NET 等价物?操作员? [复制]

C++ 等价于 C# 的内部

等价于 JavaScript 中的 continue 语句

Python 中的 AndAlso (&&) 和 OrElse (||) 逻辑运算符的等价物是啥?