Consegui fazer o código mas quero entender melhor o porque de criar as variáveis com true. Seria somente para usá-las no if?
Consegui fazer o código mas quero entender melhor o porque de criar as variáveis com true. Seria somente para usá-las no if?
Oi Vitor, cola o código aqui pra gente explicar direitinho baseado no seu projeto?
A resposta rápida é que sim, pra usar em ifs pra podermos validar se algo está de acordo ou não. Não temos essa garantia sempre. Entende?
Oi vitor,
é mais ou menos isso sim
A ideia é não fazer uma comparação gigante lá dentro do último if. Que ficaria assim:
if((peso <= 0 || peso > 1000) && (altura <= 0 || altura >= 3)){
var imc = peso / ( altura * altura);
tdImc.textContent = imc;
}
Com as variáveis a condição dentro do if fica mais legível:
if (alturaEhValida && pesoEhValido) {
var imc = peso / (altura * altura);
tdImc.textContent = imc;
}
Agora o ponto é que se apenas declarássemos a variável sem colocar um valor , assim:
var pesoEhValido
Caso o peso fosse válido, ele não entraria nesse if
aqui:
if (peso <= 0 || peso > 1000) {
console.log("Peso inválido!");
tdPeso.textContent = "Peso inválido!";
pesoEhValido = false;
}
pesoEhValido
não viraria false e continuaria com um valor undefined
(indefinido). Esse undefined
representa que niguém atribuiu um valor à variável. Na hora de passar pelo if:
if (alturaEhValida && pesoEhValido) {
pesoEhValido
valeria como se fosse um false
, pois undefined
é um valor que vira false
quando convertido para booleano