// incrementing precedence a = b ? X : c || d && e | f ^ g & h == i < j << k + l / ++ m ++ ; // decrementing precedence ++ a ++ / b + c << d < e == f & g ^ h | i && j || k ? X : y = l ; // assignment (right-to-left) a = b += c -= d **= e *= f /= g %= h <<= i >>= j >>>= k &= l ^= m |= n ; // equality (left-to-right) a == b != c === d !== e ; // relational (left-to-right) a < b <= c > d >= e ; // bitwise shift (left-to-right) a << b >> c >>> d ; // addition (left-to-right) a + b - c ; // exponentiation (right-to-left), multiplication (left-to-right) a ** b * c / d % e ** f * g ; // prefix (right-to-left) delete void typeof -- ++ - + ~ ! a ; // parenthesized ( a + ( b / c ) - d ) * e ;