如果我在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运算符?
答案 0 :(得分:5)
if(!a || !a.value) {
doSomething()
}
答案 1 :(得分:1)
在JavaScript中,||
运算符是短路的,但|
(兼作按位OR运算符)不会短路。
所有C语法语言都是一样的,包括C#和Java,但是a||b
并非所有语言都保证在a
之前评估b
(他们可能会选择评估) b
首先)。请务必检查您的语言规范。