Eloquent JS中逻辑运算符示例的说明

时间:2019-05-31 23:26:04

标签: javascript logical-operators

我无法理解Eloquent JS书中的以下示例:

console.log(
  1 + 1 == 2 && 10 * 10 > 50 // true
);

有人可以一步一步地向我解释吗?

2 个答案:

答案 0 :(得分:2)

Operator precedence

  • +的优先级为13
  • ==的优先级为10
  • *的优先级为14
  • >的优先级为11
  • &&的优先级为6

因此,代码等效于:

1 + 1 == 2 && (10 * 10) > 50 // group * (precedence 14)
(1 + 1) == 2 && (10 * 10) > 50 // group + (precedence 13)
(1 + 1) == 2 && ((10 * 10) > 50) // group > (precedence 11)
((1 + 1) == 2) && ((10 * 10) > 50) // group == (precedence 10)

然后简化:

((1 + 1) == 2) && ((10 * 10) > 50)
((2) == 2) && ((10 * 10) > 50)
(true) && ((10 * 10) > 50)
(true) && ((100) > 50)
(true) && (true)
true

答案 1 :(得分:0)

首先,我们有一个加一,我们正在检查是否等于(等于)二。

1 + 1 == 2

然后我们有一个逻辑AND运算符(&&),它检查其两边的语句是否正确。到目前为止,以上都是正确的,因此处理继续进行。

最后,我们将十乘以十(100),并检查它是否大于50(是)。

10 * 10 > 50

最后,AND运算符看到两个参数都为真,并给出了结果:

 

console.log(1 + 1 == 2 && 10 * 10 > 50);