O JavaScript é muito versátil, principalmente no modo como essa linguagem permite a declaração de variáveis. Mas isso não quer dizer que possa usar qualquer jeito. Você vai entender agora a diferença entre let
e var
no JavaScript.
Em JavaScript, blocos de código são definidos com os símbolos { }
. A regra geral é: variáveis declaradas dentro de um bloco não podem ser acessadas fora dele.
Entretanto, essa regra só se aplica para variáveis declaradas com let
. Se você usar var
, a variável também ficará disponível fora do bloco.
Isso funciona para blocos if, for, do . . . while, try . . . catch
e switch
, mas não funciona para function
apesar de usar as chaves { }
. Veja o exemplo abaixo:
Usando let
:
let manha = true ;
if ( manha == true ) { // bloco if
let alunos = 50 ;
}
console.log ( "Número de alunos: " + alunos ) ;
// Saída: Uncaught ReferenceError: alunos is not defined
Usando var
:
let manha = true ;
if ( manha == true ) { // bloco if
var alunos = 50 ;
}
console.log ( "Número de alunos: " + alunos ) ;
// Saída: 50
Como o exemplo acima mostra, no primeiro caso, foi declarado let alunos
. Ao tentar obter o valor da variável fora do bloco, ocorreu um erro dizendo que alunos
não tinha sido definido.
Mas, ao declarar var alunos
, a variável pôde ser acessada fora do escopo sem problemas.
Conclusão
Imagino que você, assim como eu, nunca tivesse percebido a diferença entre let
e var
e, até agora, tem usado essas duas palavras-chave como se elas fossem a mesma coisa. Mas, como foi mostrado, elas possuem uma diferença significativa que poderia causar um erro sério ao seu projeto.
Assim, na programação, embora 2 métodos possam levar a um mesmo resultado, isso não significa que eles sejam idênticos. Entender as diferenças sutis entre um método e outro é o que ajudará a você a se tornar um programador eficiente! 😁