Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Posição

Insira aqui a descrição dessa imagem para ajudar na acessibilidadePor que quando coloco as linhas 32 e 33 fora da função

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeAcontece este erro:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Oi Luiz,

O erro ocorre porque as variáveis area e perimetro são declaradas com let dentro da função, o que significa que elas têm escopo local - só existem dentro do bloco da função onde foram declaradas. Quando você tenta acessá-las fora da função, elas não estão definidas naquele escopo, resultando no erro "ReferenceError: area is not defined".

Como Funciona o Escopo em JavaScript

Dentro da função (código correto):

function calcularAreaPerimetroSalaRetangular(altura, largura) {
    let area = altura * largura;
    let perimetro = 2 * (altura + largura);
    console.log(`Área da sala: ${area} metros quadrados`);
    console.log(`Perímetro da sala: ${perimetro} metros`);
}

Fora da função (código com erro):

function calcularAreaPerimetroSalaRetangular(altura, largura) {
    let area = altura * largura;
    let perimetro = 2 * (altura + largura);
}
console.log(`Área da sala: ${area} metros quadrados`); // Erro!
console.log(`Perímetro da sala: ${perimetro} metros`); // Erro!

Para resolver o erro, você precisa declarar as variáveis no escopo global.

Veja como fazer corretamente:

let area;
let perimetro;

function calcularAreaPerimetroSalaRetangular(altura, largura) {
    area = altura * largura;
    perimetro = 2 * (altura + largura);
}

calcularAreaPerimetroSalaRetangular(10, 20);
console.log(`Área da sala: ${area} metros quadrados`);
console.log(`Perímetro da sala: ${perimetro} metros`);

Explicação

Ao declarar area e perimetro fora da função, elas se tornam variáveis globais e podem ser acessadas em qualquer lugar do código. Dentro da função, apenas atribuímos novos valores a essas variáveis já existentes, sem usar a palavra-chave let. Dessa forma, os console.log conseguirão acessar os valores calculados pela função.

tux matrix    Caso este post o tenha ajudado, por favor, marcar como solucionado ☑️. Bons Estudos! 🤓