JavaScript usa true y false para representar los dos valores de verdad de la lógica.
En JavaScript, para cada una de las tres operaciones lógicas (Y, O y NO) existe un operador correspondiente: &&, || y !.
En general, hay reglas sobre el orden de las operaciones y, en este caso, ! (negación) se aplica primero, luego && (conjunción) y después || (disyunción).
El orden de las operaciones entre los operadores se puede modificar usando un operador con mayor precedencia: ( ), llamado «operador de agrupación» o, simplemente, «paréntesis».
De hecho, el operador ( ) tiene la mayor precedencia de todos los operadores de JavaScript.
Encontrarás más información sobre la precedencia de operadores aquí.