更具体地说,是否有一组值(a,b和c),运算符优先级在语句中很重要:
var value = (a && b == c);
(NaN除外)。
答案 0 :(得分:3)
是
js> false && true == false
false
js> (false && true) == false
true
由于==
的优先级高于&&
,因此第一个解析为false && (true == false)
,相当于false && false
,因此评估为false
。第二个相当于false == false
,即true
答案 1 :(得分:2)
解析语言,使您的语句等同于(a && (b == c))
。等于运算符将始终在&&
,||
和其他逻辑运算符之前运行。您可以找到详细的细节here。
答案 2 :(得分:2)
烨。 ==
比&&
绑定得更紧,所以你绑定的是
var val = a && ( b == c)
见here。因此a==0
,b==1
和c==0
为false,而(a&&b)==c
为真。
(修正了错字。该死。)