View on GitHub

Capacitacao-CEOS-2-Javascript

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.