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

Dúvida sobre a variável dos carros

Fala gente! blz?

Estava escrevendo o código e percebi que os carros 2 e 3 estão aparecendo normalmente sem eu declarar as suas respectivas variáveis:

//imagens do jogo

let imagemEstrada;
let imagemAtor;
let imagemCarro;

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");
  }

Deduzi que estão declarados dentro da função mostraCarro();

function mostraCarro(){
  image(imagemCarro, xCarro, yCarro, 50, 30);
  image(imagemCarro2, xCarro2, yCarro2, 50, 30);
  image(imagemCarro3, xCarro3, yCarro3, 50, 30);
}

Está certo? É isso mesmo? O que pode acontecer caso continue deste jeito?

Desde já agradeço!

2 respostas
solução!

Olá Julio, tudo bem?

Para entender o porquê é permitido criar atribuições a variáveis não declaradas devemos compreender, o que acontece por “debaixo dos panos”.

O JavaScript é uma linguagem que tenta ajudar o programador, mas essa ajuda pode lhe causar problemas, quando você não declara a variável o JS faz o ”favor” de declarar por debaixo dos panos, uma variável de escopo global, ou seja, ela pode ser acessada e modificada em qualquer parte do seu código. Isso não é legal, pois dá margem a diversos problemas, afinal de contas se qualquer parte do seu código pode modificar uma variável global, pode ser que em determinado momento ela não tenha o valor que a gente esperava.

O que nos leva à conclusão que colocar a palavra reservada var ou let no momento da criação de nossas variáveis é uma boa prática para garantir que a variável tenha o escopo que queremos!

Ou seja, desde já, passe a utilizar e declarar corretamente as variáveis, evitando futuros erros quando seus projetos ficarem cada vez maiores.

Espero que com essas dicas eu consiga lhe ajudar a compreender melhor o que aconteceu no seu código.

Continue se dedicando e buscando saber cada vez mais .

Um grande abraço e até mais!

Muito obrigado!!! Me ajudou muito!