Funções
Até agora, nós escrevemos nossos programas diretamente sem nenhum agrupamento, são apenas várias expressões, if/else, loops e etc, um após o outro. Porém, em programas maiores, isso se torna inviável, imagine só,10000 linhas com vários loops, if/else, e etc. Seria uma bagunça, certo?
Por isso, é comum e uma boa prática agrupar cada pequena parte dos nossos programas em funções.
Funções são pequenos blocos de código reutilizáveis, que podem receber parâmetros e retornar valores.
Em Javascript, podemos declarar nossas funções da seguinte maneira:
function funcao() {
// seu codigo aqui
}
Usamos a palavra-chave function, e logo em seguida vem o nome da nossa função, seguido de (). Então usamos { } para delimitar o bloco de código da função, que é onde deve ir o código a ser executado.
Um exemplo de função que imprime no console 'funções são legais 8D'
function mensagem() {
console.log('funções são legais 8D');
}
Criamos uma função chamada mensagem que imprime uma mensagem no console.
Ao criar a função, o nosso código não é executado instaneamente, para isso, precisamos chamar a função (ou invocar a função, executar, como você preferir :b)
Para chamar a função, é muito simples:
Basta escrever o nome da sua função seguido por ().
Por exemplo, pra chamar a função anterior, fazemos:
mensagem();
Experimente executar esse código, escreva uma função que mostre outra mensagem, pode brincar :p
Um detalhe: podemos chamar a função quantas vezes for necessário, por isso a ideia de reutilizar.
Caso eu quisesse mostrar a mensagem na tela 5 vezes:
for (let i = 0; i < 5; i++) {
mensagem();
}
Ou então… Poderia criar uma outra função que mostrasse a mensagem 5 vezes:
function mostra_5_vezes() {
for (let i = 0; i < 5; i++) {
mensagem();
}
}
E então, seria só chamar a função mostra_5_vezes
mostra_5_vezes();
Beleza. E os parâmetros?
A gente define os parâmetros da função na hora de declarar ela:
function funcao_com_parametros(parametro1, parametro2, parametro3) {
// codigo aqui
}
Os parâmetros da função vão dentro dos ().
Na hora que vamos chamar a função, devemos agora passar os parâmetros.
PS: É muito importante prestar atenção na ORDEM dos parâmetros, pois eles ser passados na ordem em que foram declarados na função (dentro dos ()).
Por exemplo, funcao_com_parametros:
funcao_com_parametros(parametro1, parametro2, parametro3)
Para que fique mais importante a questão da ordem, vamos criar uma função que mostra o nome e o sobrenome da pessoa:
function mostra_nome(nome, sobrenome) {
console.log(nome + ' ' + sobrenome);
}
Se o seu nome for Zezin Xambrovsky, você faria:
mostra_nome('Zezin', 'Xambrosvky');
E então seu nome seria mostrado corretamente, na ordem correta.
Porém, se fizermos
mostra_nome('Xambrovsky', 'Zezin');
O nome seria exibido como 'Xambrovsky Zezin'.
Isso acontece porque nos parâmetros da função, recebemos primeiro o nome e depois o sobrenome da pessoa.
Portanto, é importante respeitar a ordem dos parâmetros que a função espera.
Outro exemplo:
function mostraSaldo(nome, saldo) {
console.log('Ola ' + nome + '. Você tem R$ ' + saldo + ' na sua conta.');
}
Observem a ordem, precisamos passar primeiro o nome da pessoa, e depois o saldo da conta dela.
Um detalhe importante de se observar: quando você chama a função passando suas variáveis como parâmetros, a variável não vai ser “passada” pra função, e sim o valor atual da variável.
let nome = 'João';
let saldo = 1000;
mostraSaldo(nome, saldo);
A chamada mostraSaldo(nome, saldo) é equivalente a mostraSaldo('João', 1000).
Ok. Resumindo rapidamente: criamos funções usando a palavra function, depois damos um nome pra função e também podemos definir os parâmetros da função.
Uma outra coisa importante é que funções retornam um valor.
Para isso, usamos a palavra-chave return.
Um exemplo de função que retorna o número 5.
function cinco() {
return 5;
}
Aparentemente nada mudou, só tem um return na função. Porém, agora podemos guardar esse valor que a função retornou.
let a = cinco();
console.log(a); // 5
Podemos fazer o que quisermos agora com esse valor, qualquer operação.
Quando fazemos let a = cinco(); é equivalente a fazer let a = 5;, pois a chamada da função cinco() será substituida pelo valor que ela retorna.
Um exemplo um pouco mais elaborado agora:
function quadrado(n) {
return n * n;
}
Essa função eleva um número ao quadrado:
let b = quadrado(5); // 25
console.log(b); // 25;
Também podemos juntar nossas 2 funções:
let c = quadrado(cinco());
console.log(c);
A chamada cinco() retorna o número 5, e então 5 é passado como o parâmetro n pra função quadrado.
Como vimos, também podemos retornar valores de funções. E a gente pode usar esses valores (ou não).
Próximo capitulo iremos continuar estudando funções.