有没有' OrElse'相当于javascript?

时间:2015-10-15 01:00:52

标签: javascript

如果我在vb.net中有这一行

If (a = Nothing OrElse a.value = Nothing) Then 
    DoSomething()
End If

相当于

if (a = nothing) Then 
    DoSomething()
else
    if (a.value = nothing) Then
        DoSomething()
    End If
End If

基本上是什么使得OrElse'不同于'或'如果左侧应该返回false,则仅评估右侧,在这种情况下,这是必要的,因为如果我要检查a.value而a是什么,那么我将获得空引用异常。

javascript中是否有等效的OrElse运算符?

2 个答案:

答案 0 :(得分:5)

这是有效的。 (它被称为短路)

if(!a || !a.value) { 
  doSomething()
}

答案 1 :(得分:1)

在JavaScript中,||运算符是短路的,但|(兼作按位OR运算符)不会短路。

所有C语法语言都是一样的,包括C#和Java,但是a||b并非所有语言都保证在a之前评估b(他们可能会选择评估) b首先)。请务必检查您的语言规范。