What is the priority when there are many && ! and ||

For example(may be too unrealistic)
var a=1;
var b=4;
var c=5;
var d=6;
a>2&&!b<5||c=5&&d>6

A simple google search yields a table with all the operations and there precedence:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

a > 2 && ! b < 5 || c = 5 && d > 6

The unrealistic part is c = 5 which is not an expression so cannot be an operand in the above. c === 5 is an expression.

! b < 5 will always be true since both false and true are less than 5.

The NOT b is evaluated first resulting in a boolean.

 > false < 1
<- true
 > true < 1
<- false
 > true < 2
<- true

NOT is the first thing evaluated in your overall expression, followed the comparisons, then by AND, and finally by OR.

a = b = c = d = 0

a > 2 && ! b < 5 || c = 5 && d > 6

becomes,

false && true || false && false

which becomes,

false || false

which is false.

1 Like

Thank you for your answer!! I really appreciate that! stetim94 has a reference which shows a more general case.:wink:

1 Like