5
respostas

[Projeto] Primeiros passos

Tudo tranquilo até aqui, mas notei algo. No momento de determinar uma das variáveis, eu esqueci de digitar o "let", e mesmo assim o código funcionou perfeitamente. Minha dúvida é: o let é opcional?

let imagemEstrada;
let imagemAtor;
let imagemCarro;
//carro
let xCarro = 600
//ator
let yAtor = 366

function preload(){
  imagemEstrada = loadImage("imagens/estrada.png");
  imagemAtor = loadImage("imagens/ator-1.png");
  imagemCarro = loadImage("imagens/carro-1.png");
}

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

function draw() {
  background(imagemEstrada);
  mostraAtor()
  mostraCarro()
  movimentaCarro()
  movimentaAtor()
}

function mostraAtor(){
  image(imagemAtor, 100, yAtor, 30, 30)
}

function mostraCarro(){
  image(imagemCarro, xCarro, 40, 50, 40)
}

function movimentaCarro(){
  xCarro -= 2
}

function movimentaAtor(){
  if (keyIsDown(UP_ARROW)){
    yAtor -= 3
  }
  if (keyIsDown(DOWN_ARROW)){
    yAtor += 3
  }
}
5 respostas

Não ficou claro onde você deixou de declarar o let para poder avaliar, mas o let (ou const) só é obrigatório quando vc for declarar a variável pela primeira vez, após isso o let não é necessário para chamar a variável. Ex:

let numero = 2

function soma (multiplicador) { const resultado = numero * multiplicador return resultado.

Explicação: dentro da função não é necessário por o let para chamar a variável numero. O let é apenas para declarar a variável pela primeira vez.

Perdão, eu não deixei claro mesmo.

É que em determinado momento do desenvolvimento da escrita do código, eu fiz isso:

let imagemEstrada;
let imagemAtor;
let imagemCarro;
//carro
xCarro = 600
//ator
let yAtor = 366

Ou seja, esqueci de colocar o let antes do xCarro e o código rodou normalmente. Daí veio minha dúvida sobre a necessidade do let.

let imagemDaEstrada; let imagemDoAtor; let imagemDoCarro;

//variaveis do carro let xCarro = 600;

//variaveis ator let yAtor = 366;

function preload(){ imagemDaEstrada = loadImage("imagens/estrada.png"); imagemDoAtor = loadImage("imagens/ator-1.png"); imagemDoCarro = loadImage("imagens/carro-1.png"); }

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

function draw() { background(imagemDaEstrada); mostraAtor(); mostraCarro(); movimentaCarro(); movimentaAtor(); }

function mostraAtor(){ image(imagemDoAtor, 100, yAtor, 25, 25); }

function mostraCarro(){ image(imagemDoCarro, xCarro, 40, 60, 35); }

function movimentaCarro(){ xCarro -= 2; }

function movimentaAtor(){ if (keyIsDown(UP_ARROW)){ yAtor -= 5; } if (keyIsDown(DOWN_ARROW)){ yAtor += 5; } }

Acho que é porque o JS é uma linguagem fracamente tipada, então ele tolera alguns argumentos sem a determinação do let. Até onde estudei, é importante determinar a variável para especificar se ela pode ser mudada (let) ou não (const).

Me corrijam, por favor!

As boas práticas sugerem declarar a variável, ainda que ela funcione sem a declaração!