*De toda forma isso ta sendo um estudo pra mim, aprendi bastante com essa pesquisa toda!
*Já adianto que as vantagens do var não parecem ser realmente vantagens! hahah São situações muito específicas, que na minha mente de iniciante de programação não consigo imaginar claramente em uma utilização mais recomendada que o let, por mais que eu tenha procurado.
*Let e const > var !
Var vs Let
Vantagens do 'var':
1 - Ao contrário do let que tem escopo de bloco, ou seja, fora daquele bloco não será reconhecido o valor 'x', o var tem escopo global ou escopo de função. É bem útil quando você precisa acessar a variável globalmente no seu código ou em todo escopo de alguma função.
exemplo de var sendo útil e let/const não servindo:
function exemplo() {
var nomePedro = "Pedro";
const nomeWesley = "Wesley";
if (true) {
var idadePedro = 24;
let idadeWesley = 26;
console.log(nomePedro); // "Pedro"
console.log(idadePedro); // 24
console.log(nomeWesley); // "Wesley"
console.log(idadeWesley); // 26
}
console.log(nomePedro); // "Pedro"
console.log(idadePedro); // 24 (acessível fora do bloco if)
console.log(nomeWesley); // "Wesley"
console.log(idadeWesley); // Erro de referência (não acessível fora do bloco if)
}
exemplo();
**console.log(nomePedro); // "Pedro" (acessível globalmente)
console.log(idadePedro); // 24 (acessível globalmente)**
2 - Em código legado o var é necessário por ser a única palavra-chave disponível em
versões mais antigas do Javascript.
3 - "Hoisting" - Para entender esse aqui exigiu um pouco de atenção minha hahah
Vou começar com o exemplo primeiro.
exemplo:
**console.log(nome);** // undefined, mas reconheceu a variável "NOME" antes mesmo de ter sido declarada. (Só não reconheceu o valor armazenado nela, pois ainda não havia sido armazenado).
**var nome = "Wesley";** // declaração e atribuição de valor dentro da variável.
**console.log(nome);** // Retorna "Wesley"
Conclusão: Reconhece que a variável foi declarada antes da própria declaração da variável. Apesar de isso ser considerada uma vantagem é desvantagem também porque torna a depuração de erros mais difícil e pode surgir comportamentos inesperados.
4 - O 'var' oferece uma possibilidade de redeclaração de variável, pode ser declarada a mesma variável várias vezes no mesmo código sem gerar erro, caso seja feito corretamente.
*As desvantagens do 'var' é uma maior dificuldade de encontrar a causa do erro e também poder gerar comportamentos ou resultados inesperados.
Vantagens do let
1 - O let é mais moderno. É recomendado na maioria das vezes a utilização de 'let' ou 'const' por ser mais restrito e, portanto, de melhor identificação
de erros. (duas vantagens aqui)
2 - Evita confusões por ser de declaração única. Declarar uma única vez uma variável torna o código mais legível e garante que as variáveis sejam usadas de forma mais consistente.
3 - Ser de escopo de bloco e de reatribuição controlada também é uma vantagem. Evita que a variável seja acidentalmente reatribuída, facilita rastreamento e correção de bugs.
Resumi bastante as vantagens do let pois são vantagens bem claras, são basicamente resumidas em:
Melhor entendimento do código
Evita surpresas inesperadas
Melhor rastreamento e correção de possíveis erros
Tanto let quanto const são variáveis mais recentes no javascript e mais recomendadas de serem usadas do que o var.
Eu particularmente não achei que as vantagens do var são realmente vantagens rsrs