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

Meu entendimento sobre o funcionamento da função: Estou correta?

Gostaria de saber se meu entendimento sobre criar funções está correto, alguém poderia me dar esse feedback? Fiz algumas indicações na estrutura da função para explicar o que entendi:


1→ function exemplo( ) ←2 {

3→ comando

}

exemplo(" Uma string qualquer pra exemplificar") ←4


O meu raciocínio foi o seguinte:

  1. Sempre que eu colocar algo como parâmetro dentro de "2" , ele vai receber qualquer coisa que eu colocar em "4" ao longo do código certo? Logo o raciocínio é que se eu "chamar" a função pelo nome dela: "exemplo", é porque eu quero que ela receba o que eu coloquei como parâmetro dentro de "4" e execute a função que eu criei dentro de "3" , certo?

  2. E se eu não colocar nada dentro de "2" , significa que eu não quero que ela receba nada, e ela simplesmente pode ser chamada a executar um comando ("3" ) sem precisar de nenhum parâmetro em "4" certo?

  3. Mas também, se eu quiser chamar a função para receber algo de "4" em "2" e não definir nenhuma variável em "2" , a função não vai considerar o que eu colocar e "4" e vai partir direto pro comando ("3" ).

  4. E também se eu definir uma variável em "2" , mas não informar que eu quero que o comando "3" execute ela, o comando irá acontecer e vai ignorar o parâmetro que eu pedi para ela puxar em "4" e vai partir direto pro comando desconsiderando "4". Certo?

4 respostas
  1. ok
  2. ok
  3. provavelmente vai ocorrer um erro
  4. ok

Eu fiz um teste no console, veja.

Gostaria de entender o exemplo que ele deu:

Uncaught Reference Error: a is not defined

at exemplo ( :1:22)

at :1:22

e esse também

exemplo @VM696:1

(anonymous) @VM701:1

O que significam essas indicações? Sabe me dizer ?

solução!

Oi Gabi, tudo bem?

Nas duas primeiras indicações, seu raciocínio está correto.

Em relação à indicação 3, como o Luiz mencionou, vai ocorrer um erro. Quando nós criamos uma função, nós precisamos informar de cara se queremos que ela receba um parâmetro ou não.

Usando como exemplo os testes que você fez no console, foi declarada uma função exemplo() que não recebe nenhum argumento como parâmetro, logo quando você chamou a função passando os argumentos (5, 4) e tentou fazer uso deles dentro dela, a própria função não os reconheceu já ninguém avisou que ela deveria receber e1, e2, e3. Logo, o navegador jogou esses erros no console alertando a gente que nenhuma dessas variáveis foram definidas.

A indicação 4 está meia correta, embora o problema talvez seja apenas a forma como eu li e não a ideia em si. Se você informar a função que ela deve receber uma variável mas mesmo assim não usar ela dentro da função, está tudo bem, não vai dar erro. Porém, não é como se a função ignorasse o parâmetro, ele ainda vai estar lá disponível para ser usado na função.

Só finalizando, essas indicações estranhas que apareceram no console estão relacionadas à forma como o Javascript é interpretado por baixo dos panos. Na engine JavaScript do Chrome, por exemplo, cada script interno tem seu ID, exibidos dessa forma: @VM696:1 e @VM701:1. Em outras palavras, não precisa se preocupar muito com isso, já que é uma coisa bem particular da engine usada por baixo dos panos.

Espero ter ajudado, qualquer dúvida já sabe o que fazer!

Bons estudos!!

A obrigada Thiago! Esclareceu minhas dúvidas =)

E obrigada Luiz! Também me ajudou a entender. : )