说明JavaScript如何评估此代码

时间:2019-07-05 07:08:12

标签: javascript

(true + false) > 2 + true;

我在Chrome控制台调试器上运行此程序,结果为false。

但是

true + false = 1
1 > 2 = false
false + true = 1

有人可以解释为什么答案是错误的吗?

2 个答案:

答案 0 :(得分:5)

>(大于)的运算符优先级为11,而+的运算符优先级为12。See MDN for a table。所以:

(true + false) > 2 + true;

等同于

(true + false) > (2 + true);
(1) > (2 + true);
(1) > (3);
1 > 3
false

答案 1 :(得分:0)

由于JS运算符的优先级,这两个加法在大于运算之前进行求值。像这样看:

(true + false) > (2 + true);

本质上就是这样,如果您计算出括号,则

(1 + 0) > (2 + 1)
1 > 3

您可以看到它是false