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

Por qual motivo o instrutor não declarou a váriável imagemCarros com o let?

Toda lista que ele criou, declarou com o let... a "imagemCarros" não... Fiquei com muita dúvida sobre isso, já li todos os tópicos das outras pessoas que tiveram a mesma dúvida, mas não ajudou muito.

Vamos ao código:

//imagens do jogo
let imagemEstrada;
let imagemAtor;
let imagemCarro;
let imagemCarro2;
let imagemCarro3;

//Vai carregar as imagens a serem utilizadas
function preload() {
  imagemEstrada = loadImage("imagens/estrada.png");
  imagemAtor = loadImage("imagens/ator-1.png");
  imagemCarro = loadImage("imagens/carro-1.png");
  imagemCarro2 = loadImage("imagens/carro-2.png");
  imagemCarro3 = loadImage("imagens/carro-3.png");
  imagemCarros = [imagemCarro, imagemCarro2, imagemCarro3];
}

do jeito que ele fez acima, ele manteve as variáveis imagemCarro, imagemCarro2 e imagemCarro3 e aí, dentro do preload criou mais uma linha com uma lista para armazenar as 3 variáveis... Aí, eu já comecei na dúvida por ver o imagemCarros ser criado sem o let, var ou const, então isso já uma baita dúvida...

E aí, penso: Por qual motivo ele já não declarou uma lista fora da função e carregou as imagens diretamente dentro de cada posição. Esse meu entendimento ficaria assim (eu testei dessa forma e funcionou):

//imagens do jogo
let imagemEstrada;
let imagemAtor;
let imagemCarros = ['', '', ''];

//Vai carregar as imagens a serem utilizadas
function preload() {
  imagemEstrada = loadImage("imagens/estrada.png");
  imagemAtor = loadImage("imagens/ator-1.png");
  imagemCarros[0] = loadImage("imagens/carro-1.png");
  imagemCarros[1] = loadImage("imagens/carro-2.png");
  imagemCarros[2] = loadImage("imagens/carro-3.png");
}

Então ficam duas dúvidas cabeludas:

1 - Pq não teve um let maroto antes da lista que o instrutor criou dentro do preload?

2 - Pq ele nao criou essa lista fora do preload e carregou cada posição da mesma com uma imagem e assim, excluindo as 3 variáveis imagemCarro, imagemCarro2 e imagemCarro3?

Muitíssimo agradicido desde já XD

2 respostas
solução!

olá Guilherme, provavelmente foi um erro do professor que esqueceu de declarar a variável, e o motivo de não ter dado erro é que o Javascript tem uma particularidade na hora de declarar variáveis ele não precisa que você coloque VAR, LET ou CONST antes da variável para declarar ela, não é a forma mais correta porem funciona.

e a resposta da segunda pergunta eu não sei ao certo, mas provavelmente a escolha dele fazer o código criando as três variáveis deve ser por causa da compreensão ficar mais fácil para quem esta iniciando na programação.

Hey Carlos!!!

Muitíssimo obrigado pelos esclarecimentos. Acho que agora consigo seguir em frente sem essa dúvida me atormentando hehehe