0

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

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

(NaN 除外)。

4

3 回答 3

3

是的

js> false && true == false
false
js> (false && true) == false
true

由于==优先级高于&&,因此第一个被解析为false && (true == false),相当于false && false,因此计算结果为false。第二个等价于false == false,即true

于 2009-03-26T21:53:44.530 回答
2

该语言被解析为您的语句相当于(a && (b == c)). 相等运算符将始终在和其他逻辑运算符&&之前运行。您可以在此处||找到详细信息。

于 2009-03-26T21:50:50.387 回答
2

是的。 ==比 绑定得更紧&&,所以你有什么绑定为

var val = a && ( b == c)

这里。所以a==0, b==1andc==0是假的,while(a&&b)==c是真的。

(修正错字。该死的。)

于 2009-03-26T21:53:41.690 回答