运算符优先级对于&&和和==在JavaScript中?

时间:2009-03-26 21:47:11

标签: javascript operators operator-precedence

更具体地说,是否有一组值(a,b和c),运算符优先级在语句中很重要:

var value = (a && b == c);

(NaN除外)。

3 个答案:

答案 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==0b==1c==0为false,而(a&&b)==c为真。

(修正了错字。该死。)