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

Variável não declarada e não dá erro!

Pessoal, boa noite!

Por gentileza, gostaria que alguém me ajudasse, por que não estou entendendo. Vejam abaixo.

//código do carro

let xCarros = [600, 600, 600]; let yCarros = [40, 96, 150]; let velocidadeCarros = [2, 2.5, 3.2];

function voltaPosicaoInicialDoCarro(){ for (let i = 0; i < imagemCarros.length; i = i + 1){ if (passouTodaATela(xCarros[i])){ xCarros[i] = 600; } } }

function passouTodaATela(xCarro){ return xCarro < - 50; }

A variável xCarro na função acima não está definida no início, mas é referenciada aqui e não dá erro. O que está acontecendo?

3 respostas
solução!

Olá, a "variável" xCarro na verdade é um parâmetro da função, ela recebe o valor que for passado para ela quando a função é chamada.

No seu código você tem um looping que chama essa função e passa como parâmetro xCarros[i], logo o valor de xCarro é o valor disponível no indíce da array xCarros.

Um exemplo mais simples abaixo:

function digaOla(nome) {
  console.log("Olá, " + nome + "!");
}

digaOla("João")

Na função acima o nome também não é definido com um let ou const pois é um parâmetro de função que recebe o valor "João" que foi passado para ela quando a função foi chamada.

Boa explicação Rian. Bons estudos para vcs, qual quer duvida estou aqui para ajudar também.

Rian, boa noite! Agradeço por sua paciência!!! Agora entendi. Colocando qualquer nome dentro do parênteses significa que a função tem que receber um parâmetro fornecido pela função que a chama. No caso, receberá um valor da lista. Milhões de obrigados! Agradeço também ao Maycon que observou minha dúvida.