javascript operator precedence and associativity