Qual Operador Lógico Precedência

Então, estou procurando escrever uma operação um pouco mais complexa com operadores lógicos em uma instrução if-else. Eu sei que posso fazer parênteses, e sei que é a melhor maneira de fazer isso, mas fiquei curioso e então vou perguntar. Se eu fosse fazer algo assim:

if (firstRun == true || selectedCategory != undefined && selectedState != undefined) {
//Do something
} else {
//Do something else
}

Como isso será operado sem o uso de parênteses? Eu sei que há uma ordem de operações para operadores lógicos, semelhante ao PEMDAS, certo? Estou curioso para saber se será algo assim:

firstRun == true || (selectedCategory != undefined && selectedState != undefined)

ou talvez se o operador 'OR' tiver precedência e acabe como:

(firstRun == true || selectedCategory != undefined) && selectedState != undefined

A lista completa seria boa, se você puder encontrá-la em algum lugar, da ordem das operações para isso. Obrigado!

questionAnswers(6)

yourAnswerToTheQuestion