Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Qual a diferença desse java para o java que estava usando no sublime?

Por que nesse java as variáveis são definidas com let e não var? São ferramentas diferentes?

3 respostas
solução!

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.