Convention mostly, but it may not always be obvious what those are, especially in texts that are liberal in use of non-standard notation. Even so, most notations allow use parenthesis of some kind to specify the precise order, if needed. Note that evaluation precedence also often are "affected" if operators are associative or commutative (like, (a+b)+c is same as a+(b+c) so you do not need a precedence rule in this case).
In 1997 I did considerable research on the reasoning behind the precedence of logical operators in a parenthesis-free notation, asking why certain ones took priority. Obviously, there has to be an agreement for the convention; otherwise, there would be no consistent computations. Yet, I really could not find anyone with a reason beyond the ordering being a convention. However, if one looks again at people like Jean Piaget, s/he will find that there can be an ordering based on intellectual complexity, let's say the "vee" operator being more complicated than the material implication one. Further, one must consider the Table of Functional Completeness, where there are, in reality 16 operators, which, also - by the way - are results of computations. How are ALL operators prioritized? Such an exercise does not readily come to light because 1) most problems have the variables and operators already grouped, and 2) most persons only use the standard four or those plus ones like nand and xor.
Two projects that would intrigue me are:
A) Establish a prioritization of operators based on intellectual complexity, such as alluded to by Piaget in his "Logic and Psychology"
B) Do a comparison of the computations resulting from different prioritization, including a comparison from the results in the above proposal and the standard rendition.
Incidentally, the question may be asked of mathematical operators, as well.
My paper is at: http://home.earthlink.net/~jhorne18 [Broken], "Logic as the language of innate order...".