operator precedence and associativity in javascript