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

Dúvida sobre colocar ou não Let para definir uma variável.

Quando a variável imagemCarros foi criada dentro do funcition preload, não utilizamos o Let para defini-la como variável. O Let é opcional dependendo do tipo de variável?

6 respostas

Olá Diogo. Não estou fazendo este curso ainda, mas percebo que esta é uma questão GLOBAL de JavaScript.

Você verificou se esta variável imagemCarros já não tinha sido criada antes? pois o comum seria que sim. Já que você esta falando de dentro da "function preload()", é comum que essa variável tenha sido criada antes, sem valor. E então dentro desta função ela recebe o conteúdo desta imagem.

no JS podemos criar variaveis com VAR, LET e CONST quando usamos o VAR criamos uma variável global, que pode ser usada em todo o código quando usamos o LET a variável só existe dentro do BLOCO que foi criada (ex: dentro de funções) e também temos a opção CONST

da uma olhada neste artigo aqui da Alura que explica tudo isso: https://www.alura.com.br/artigos/entenda-diferenca-entre-var-let-e-const-no-javascript

Ficou mais claro?

sobre funções, se você declarar uma variável dentro de uma função, você só tem acesso ao valor armazenado dentro dessa variável apenas dentro da função que foi declarada. Opção é você declarar a variável fora da função e colocar o valor dela dentro da função, isso vai deixar aberto a opção de você utilizar essa variável em outras funções ou fora dela, sem precisar declarar novamente dentro da função, apenas colocando o nome dela e atribuindo o valor, independente de ser var ou let. Já a diferença entre var e let é que var você além de conseguir alterar o valor da variável, você pode declarar novamente a variável com o mesmo nome que você declarou anteriormente, e alterar o valor após declarar ela de novo, ou alterar o valor atribuido sem precisar declarar novamente, o let você não consegue declarar de novo a mesma variável.

exemplo:

var nome = 'Marcelo'
console.log(nome)
var nome = 'Ronaldo'
console.log(nome)
nome = 'Rafael'
console.log(nome)

let sobrenome = 'Kade'
console.log(sobrenome)
let sobrenome = 'Cardoso' //ERRO
console.log(sobrenome)
sobrenome = 'Cardoso'
console.log(sobrenome)

Olá, obrigado pelas respostas, mas ainda estou com dúvida. Coloquei abaixo a parte completa do código das imagens. No início do código tem 5 variáveis declaradas, porém a variável imagemCarros não está declarada em nenhum lugar como let, ou var, ou const, e mesmo assim o código funciona perfeitamente. É isso que não entendi direito. Quando se usa essa variável do tipo lista não precisa declara-la antes?

// imagens usadas no jogo

let imagemFundo;

let imagemVaquinha;

let imagemCarro1;

let imagemCarro2;

let imagemCarro3;

function preload() {

imagemFundo = loadImage("imagens/estrada.png");

imagemVaquinha = loadImage ("imagens/ator-1.png");

imagemCarro1 = loadImage ("imagens/carro-1.png");

imagemCarro2 = loadImage ("imagens/carro-2.png");

imagemCarro3 = loadImage ("imagens/carro-3.png");

imagemCarros = [imagemCarro1,imagemCarro2,imagemCarro3, imagemCarro2, imagemCarro1, imagemCarro3];

}

function mostraCarros(){

for(let i = 0; i < imagemCarros.length ; i += 1){

image(imagemCarros[i],xCarros[i],yCarros[i],60,40);

} }

dentro de uma função você consegue utilizar uma variável sem precisar declarar ela como var, tet ou const da pra fazer, mas é uma pratica ruim e que depois pode acabar dando problema no código.

sempre declare a variável para depois usar.

solução!

Agora com o código ficou mais claro.

Sim Diogo, é possível no JS, em qualquer parte do código, criar uma variável sem o VAR, LET ou CONST... é possível mas não é recomendado. E eu nem sei dizer profundamente como esta variável se comporta

Obrigado Flávio Henrique Lao e Marcelo Cardoso Kade pelas respostas e atenção. Achei estranho mesmo usar uma variável sem declara-la. Vou seguir o que me recomendaram.