(true + false) > 2 + true;
我在Chrome控制台调试器上运行此程序,结果为false。
但是
true + false = 1
1 > 2 = false
false + true = 1
有人可以解释为什么答案是错误的吗?
答案 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
。