Oii, Gabriel! Tudo bem?
Peço desculpas pela demora em responder sua dúvida.
Var, let e const, são três formas diferentes de declarar uma variável no javascript. E cada uma dessas palavras chaves, possui uma propriedade específica:
var: Ao declarar uma variável do tipo var
, ela será visível em todo o código, pois ela possui escopo global, então, todo o código tem acesso a essa variável, independente de estar dentro ou fora de uma função. Fora isso, podemos redeclarar a variável, ou seja, em um momento posso ter var numero = 10
e em outro trecho do mesmo código, ter uma nova declaração da mesma variável até mesmo com valor diferente, por exemplo: var numero = 20
e isso não irá gerar nenhum tipo de erro.
let: Ao declarar uma variável do tipo let
, ela será visível apenas dentro do bloco de código que ela está inserida, ou seja, não é visível para todo o código, sendo assim, dizemos que essa variável tem um escopo local. Outra característica é que variável do tipo let
não pode ser redeclarada.
const: Variáveis do tipo const
, não podem ser modificadas, são variáveis que geralmente possuem um valor pré-determinado, como por exemplo o número Pi. Este tipo de variável, assim como o tipo let
, também possui escopo local e não pode ser redeclarada.
Para ficar mais claro, na tabela abaixo, há as principais diferenças entre esses tipos:
Característica | Var | Let | Const |
---|
Redeclaração | Sim | Não | Não |
Reatribuição | Sim | Sim | Não |
Escopo Global | Sim | Não | Não |
No caso do seu código, se alterássemos todas as variáveis para let
teríamos dois problemas:
O primeiro é que como a variável salário não foi definida antes de ser testada na cláusula while
, não conseguiríamos utilizá-la, pois, ao utilizar let, antes de utilizar qualquer variável, ela primeiramente deve ter sido criada (declarada).
O segundo, é que a variável totalPago foi criada através do var duas vezes, mas, utilizando let isso não é possível. Com o let
, a variável deve ser criada apenas uma única vez.
Com a correção dos pontos citados acima, o código completo fica do seguinte modo:
<meta charset="UTF-8">
<script>
function escreva(texto) {
document.write(texto);
pulaLinha();
}
function pulaLinha() {
document.write("<br><hr>");
}
const quantidadeDeFuncionarios = parseInt(prompt("Quantidade de funcionários da empresa"));
let totalPago = 0;
for(i = 0; i < quantidadeDeFuncionarios; i++) {
let salario = NaN;
while(isNaN(salario)) // força o usuário a inserir um valor int
{
salario = parseInt(prompt("Informe seu salário"));
}
totalPago = totalPago + salario;
}
const mediaDoSalario = totalPago / quantidadeDeFuncionarios;
escreva("A média dos salários pagos na empresa é de: " + mediaDoSalario);
</script>
Para aprofundar o seu conhecimento sobre estes tipos de variáveis, recomendo que leia o seguinte artigo da nossa Plataforma:
Caso queira um conteúdo em vídeo para entender um pouco mais sobre a diferenciação entre var, let e const, recomendo que assista o curso JavaScript: tipos, variáveis e funções, no capítulo Var, let e const.
Qualquer dúvida estou por aqui!
Abraços ;)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!