Durante o curso o professor usou um modelo de código que verificasse se o peso era válido ou não, porém não consegui compreender o uso da ! antes da função validaPeso:
if (!validaPeso(paciente.peso)) {
erros.push("Peso é inválido");
}
if (!validaAltura(paciente.altura)) {
erros.push("Altura é inválida");
}
Sei que o uso da ! significa a negação, mas não consegui compreender bem o uso da função pois quando ele cria a função validaPeso é possível retornar true ou false:
function validaPeso(peso) {
if (peso >= 0 && peso <= 1000) {
return true;
} else {
return false;
}
}
Na minha cabeça faria sentido se ele executasse a função independente de ser verdadeira ou falsa a função. Ele "nega" o valor da função validaPeso, por exemplo Se validaPeso == true, lemos que "se validaPeso não é verdade então...". Se validaPeso == false, lemos que "se validaPeso é verdade então...". Esse seria o jeito correto de ler a função ou estou fazendo uma grande confusão?