Notion operators have a specific operator precedence order. Operators with a higher precedence (10 being the highest) will have their logic executed before operators of lower precedence.
Operators at the same precedence level are executed either lefttoright or righttoleft, depending on their associativity.
Refer to the table below to see the precedence level and associativity of each operator.
Precedence  Operator Name  Associativity  Symbol 

10  Parentheses  N/A  () 
9  Not  righttoleft  not 
8  Exponentiation (pow)  righttoleft  ^ 
7  multiply, divide  lefttoright 
* , /

6  add, subtract  lefttoright 
+ , 

5  Greater than, Greater than or equal, Less than, Less than or equal  N/A 
> , >= , < , <=

4  unequal, equal  N/A 
!= , ==

3  And  lefttoright  and 
2  Or  lefttoright  or 
1  Conditional (if)  righttoleft  ... ? ... : ... 
Since parentheses ()
have the highest precedence in a Notion formula, you can use them to define a specific order of operations within any formula.
It’s also good to understand that associativity can be thought of as an implied default setting of parentheses. For example:
/* Multiply has lefttoright associativity. The following are equivalent: */
2 * 3 * 4 /* Output: 24 */
(2 * 3) * 4 /* Output: 24 */
/* Exponentiation has righttoleft associativity (the "Tower Rule"). The following are equivalent: */
2 ^ 3 ^ 2 /* Output: 512 */
2 ^ (3 ^ 2) /* Output: 512 */
Certain operators cannot be chained in Notion formulas; thus, they do not have associativity. These are marked with “N/A” in the associativity column.
For example, the following formulas will not work in Notion:
/* Invalid */
1 > prop("Number") > 5
/* Valid */
1 > prop("Number") and prop("Number") < 5 /* Output: true */

/* Invalid */
1 == toNumber(true) == toNumber("1")
/* Valid */
1 == toNumber(true) and 1 == toNumber("1") /* Output: True */
If you want to understand operator precedence and associativity more thoroughly, I’ll recommend reading through the Operator Precedence guide for JavaScript on MDN’s web docs: