Uma função JavaScript é um bloco de código projetado para executar uma tarefa específica.
Uma função JavaScript é executada quando uma instrução a invoca.
function multiplicar(p1, p2) {
return p1 * p2; // A função multiplicar retorna o produto de p1 e p2
}
Uma função é definida com a palavra-chave function, seguida por um nome de identificador, seguido de parênteses ().
Os nomes das funções podem conter letras, dígitos, sublinhados e cifrões (mesmas regras para variáveis).
Os parênteses podem incluir nomes de parâmetros separados por vírgulas:
(parametro1, parametro2,... )
O código a ser executado, pela função, é colocado entre colchetes: {}
function nome(parametro1, parametro2, parametro3) {
// código a ser executado
}
Os parâmetros da função estão listados entre parênteses () na definição da função.
Os argumentos da função são os valores recebidos como parâmetros pela função quando ela é chamada.
Dentro da função, os argumentos (os parâmetros) se comportam como variáveis locais.
Uma função é similar a procedimentos e subrotinas em outras linguagens de programação.
Invocação de Função
O código dentro da função será executada quando uma instrução invocar (chamar) a função, em diferentes situações:
- Quando a função é invocada (chamada) pelo diretamente pela instrução de código sendo interpretada.
- Quando um evento ocorre (ex: um usuário clica em um botão).
- Automaticamente (auto-invocada).
Você aprenderá mais sobre a chamada de funções posteriormente neste tutorial.
Retorno da Função (Return)
Quando o JavaScript atinge uma instrução return a execução da função é finalizada, e a execução retorna ao ponto seguinte ao comando com a instrução de chamada da função.
As funções podem retornar um valor, que será repassado ao "chamador".
Calcule o produto de dois números e retorne o resultado:
// A função minhaFuncao é declarada com dois parâmetros a e b.
function minhaFuncao(a, b) { // A função retorna o produto de a e b
return a * b;
}
// A função minhaFuncao é invocada com os argumentos 4 e 3 e o valor de retorno é atribuido em x
var x = minhaFuncao(4, 3); // x == 12
Porque Funções?
Funções permitem uma melhor organização do código, com a sua reutilização por diversas vezes utilizando diferentes argumentos nos parâmetros.
Você pode usar o mesmo código várias vezes com argumentos diferentes, para produzir resultados diferentes.
Converter Fahrenheit em Celsius:
function paraCelcius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}
document.getElementById("demo").innerHTML = paraCelcius(77);
O Operador () Chama a Função do Identificador
Usando o exemplo anterior, o identificador paraCelcius refere-se ao objeto de função e paraCelcius() refere-se ao resultado da função.
Acessar uma função sem () retornará a definição da função em vez do resultado da função:
function paraCelcius(fahrenheit) {
return (5/9) * (fahrenheit-32);
}
document.getElementById("demo").innerHTML = paraCelcius;
Funções Usadas como Valores Variáveis
As funções podem ser usadas da mesma maneira que você usa variáveis, em todos os tipos de fórmulas, atribuições e cálculos.
Em vez de usar uma variável para armazenar o valor de retorno de uma função:
var x = paraCelcius(77);
var text = "A temperatura é " + x + " Celsius";
Você pode usar a função diretamente, como um valor variável:
var text = "A temperatura é " + paraCelcius(77) + " Celsius";
Você aprenderá muito mais sobre funções posteriormente neste tutorial.
Variáveis Locais
As variáveis declaradas em uma função são locais e sua visibilidade é restrita ao corpo da função.
Variáveis ‘locais podem ser referidas apenas de dentro da função.
// código aqui NÃO pode usar a variável nomeCarro
function minhaFuncao() {
var nomeCarro = "Volvo";
// código aqui pode usar a variável nomeCarro
}
// código aqui NÃO pode usar nomeCarro
Como as variáveis locais são reconhecidas apenas dentro de suas funções, variáveis com o mesmo nome podem ser usadas em diferentes funções.
Variáveis locais são criadas quando uma função é iniciada e excluídas quando a função é concluída.
Teste-se com exercícios
Execute a função nomeada minhaFuncao.
função minhaFuncao() {
alert ("Olá, mundo!");
}