Por que nesse java as variáveis são definidas com let e não var? São ferramentas diferentes?
Por que nesse java as variáveis são definidas com let e não var? São ferramentas diferentes?
Anderson,
A diferença entre esses dois tipos de declaração é que a declaração com var permite que a variável seja declarada nos escopos global e local, já a let permite que a variável seja declarada nos escopos global, local e de bloco.
O escopo da variável é definido de acordo com o local que ela foi declarada.
Exemplo de escopo global:
Obs*: No escopo global as variáveis são declaradas no script (fora das funções) e podem ser acessadas por todas as funções e locais do script
var minhaVariavelGlobalComVar = 10;
let minhaVariavelGlobalComLet = 15
function func1(){
console.log(minhaVariavelGlobalComVar);
console.log(minhaVariavelGlobalComLet);
}
function func2(){
console.log(minhaVariavelGlobalComVar);
console.log(minhaVariavelGlobalComLet);
}
function func3(){
console.log(minhaVariavelGlobalComVar);
console.log(minhaVariavelGlobalComLet);
}
console.log(minhaVariavelGlobalComVar);
console.log(minhaVariavelGlobalComLet);
Exemplo de escopo local:
Obs*: No escopo local as variáveis declaradas dentro de funções podem ser acessadas somente de dentro da função que foram declaradas.
// Consegue manipular a variável victor
function func1(){
var victor = "Lima";
let hugo = "Costa";
console.log(victor);
console.log(hugo);
}
// NÃO Consegue manipular a variável victor e nem a hugo
function func2(){
console.log(victor);
console.log(hugo);
}
// NÃO Consegue manipular a variável victor e nem a hugo
function func3(){
console.log(victor);
console.log(hugo);
}
Exemplo de escopo bloco:
Obs*: Somente a declaração do let pode ser utilizada no escopo de bloco. No escopo de bloco as variáveis declaradas podem ser acessadas somente de dentro do bloco que foram declaradas.
var condicao = true;
if(condicao){
let minhaVariavel = 10;
// É possível manipular a let, pois ela foi declarada
// neste bloco
console.log(minhaVariavel);
}
// ERRO, Não é possível acessar a variável, pois ela tem escopo de bloco.
function func1(){
console.log(minhaVariavel);
}
// ERRO, Não é possível acessar a variável, pois ela tem escopo de bloco.
function func2(){
console.log(minhaVariavel);
}
// ERRO, Não é possível acessar a variável, pois ela tem escopo de bloco.
function func3(){
console.log(minhaVariavel);
}
// ERRO, Não é possível acessar a variável, pois ela tem escopo de bloco.
console.log(minhaVariavel);
Esses exeplos foram extraídos do seguinte site: https://blog.schoolofnet.com/diferenca-entre-var-e-let-no-javascript/#:~:text=Quando%20voc%C3%AA%20declara%20uma%20vari%C3%A1vel,global%2C%20local%20e%20de%20bloco.
Entendi, muito obrigado.
O ideal é usar o var então e só usar let quando você precisa que aquela variável seja acessada apenas naquele bloco.
Anderson.
Usar o let é uma tendência hoje. Na verdade pensando em um código temos que deixá-lo sempre o melhor possível pensando em futuras e prováveis custumizações. Dessa forma nunca saberemos quais serão as necesidades futuras. Sendo assim acredito que sempre usar o let seria o ideal. Também acredito que a utilização do var um passrá a ser menos usual.