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

Qual a diferença entre o "var" e "let".

Como nos cursos de lógica de programação, ao declarar uma variável no Java Script usamos a seguinte expressão:

 var "nome da variável" = "valor que a variável irá receber" ;

Contudo nesse exercício o professor usou a expressão "let" para declarar uma variável e testando eu as duas notei os mesmo comportamento, ou seja:

///Meu código
var xBolinha = 300;
var yBolinha = 200;
var diametro = 15;

var velocidadeXBolinha = 6;
var velocidadeYBolinha = 6;

function setup() {
  createCanvas(600, 400);
}

function draw() {
  background(0);
  circle(xBolinha,yBolinha,diametro);
  xBolinha += velocidadeXBolinha;
  yBolinha += velocidadeYBolinha;
}
///código do professor
let xBolinha = 300;
let yBolinha = 200;
let diametro = 15;

let velocidadeXBolinha = 6;
let velocidadeYBolinha = 6;

function setup() {
  createCanvas(600, 400);
}

function draw() {
  background(0);
  circle(xBolinha,yBolinha,diametro);
  xBolinha += velocidadeXBolinha;
  yBolinha += velocidadeYBolinha;
}
///Ambos gerou o mesmo resultados.

Com isso tenho uma dúvida, se a expressão "var" e "let" tem as mesmas funcionalidades ,caso não tenha, quais são suas diferenças?

3 respostas
solução!

Oi Pedro, tudo bem ?

Aqui na Alura temos um artigo que fala justamente sobre esta diferença e cita alguns exemplos. É uma leitura bem rápida. Deixo aqui o link do mesmo.

Qualquer dúvida estou a disposição. Espero ter ajudado. Bons estudos!!!

let e var têm muitas semelhanças mas algumas diferenças importantes.

Diferenças:

let não exporta para global

Uma variável em escopo global declarada com let não é exportada como global.

let cria um escopo de bloco mesmo dentro de if statements.

Ao contrário de var que quando usado sobrepõe/re-inicia a variável e torna-a disponível dentro do escopo da função em que está, let é mais refinado/detalhado e permite diferenças em escopo de blocos. Isto é valido para blocos if, for, while por exemplo.

re-declarar uma variável com let no mesmo escopo dá erro

Se re-declarar-mos uma variável duas vezes no mesmo escopo var dar erro. Isso previne erros difíceis de detectar.

let só pode ser usada na linha seguinte

Com var é possível declarar uma variável e usá-la dentro do escopo. Mesmo que o código ainda não tenha lido a linha que atribui o valor à variável ela já está iniciada e quanto muito dá undefined. Com let isso daria erro.

StackOverflow

Obrigado pelas respostas.