Funções
Escreva function square(n) { return n * n; } uma vez, e square(4) dá 16, square(9) dá 81, e assim por diante para qualquer número que você passar.
Dando nome a um trabalho
Você já usou funções escritas por outras pessoas: console.log, Math.round e toUpperCase são todas funções. Uma função é um bloco de código com nome que faz um trabalho. Você a define uma vez e depois a chama, pelo nome, quantas vezes quiser. As funções evitam que você copie as mesmas linhas de um lado para o outro, e deixam você pensar no programa em pedaços maiores: "calcular a gorjeta, depois dividir a conta" em vez de uma lista longa de contas.
function greet(name) {
return "Hello, " + name + "!";
}
console.log(greet("Ana")); // mostra Hello, Ana!
console.log(greet("Ji")); // mostra Hello, Ji!A definição começa com a palavra-chave function, depois o nome da função, depois uma lista de parâmetros entre parênteses. Um parâmetro é uma variável que recebe um valor quando a função é chamada; aqui ele é name. O corpo entre chaves faz o trabalho. Quando você chama greet("Ana"), o valor "Ana", chamado argumento, é colocado no parâmetro name, e o corpo roda.
return devolve um valor
A palavra-chave return encerra a função e manda um valor de volta para onde a função foi chamada. A chamada greet("Ana") é uma expressão, e o valor dela é o que foi devolvido. É por isso que ela pode ficar dentro de um console.log, ou dentro de um cálculo, ou ser guardada numa variável: const msg = greet("Ana");.
Devolver um valor e mostrá-lo são coisas diferentes, e iniciantes costumam confundir as duas. Uma função que só chama console.log mostra algo na tela, mas não devolve nada. A chamada dela é avaliada como undefined, então você não pode usar o resultado num cálculo. Como regra, deixe as funções devolverem resultados e deixe o código que as chama decidir se mostra.
function addPrint(a, b) {
console.log(a + b);
}
function add(a, b) {
return a + b;
}
const x = add(2, 3) * 10;
console.log(x); // mostra 50
addPrint(2, 3); // mostra 5, mas não devolve nada que se possa usarreturn também para a função na hora. As linhas depois dele no mesmo caminho não rodam. Isso permite tratar casos especiais logo no começo: if (n < 0) return "negative"; no topo de uma função, com o caso normal escrito embaixo.
Vários parâmetros e valores padrão
Uma função pode receber vários parâmetros, separados por vírgulas, e os argumentos são associados em ordem: em add(2, 3), a é 2 e b é 3. Se uma chamada deixa de fora um argumento, aquele parâmetro fica undefined. Você pode dar a um parâmetro um valor padrão, usado quando nada é passado: function tip(bill, rate = 0.15) usa 0.15, a não ser que quem chama forneça outra taxa.
Arrow functions
O JavaScript moderno também tem um jeito mais curto de escrever funções pequenas, a arrow function (função seta). const square = (n) => n * n; quer dizer o mesmo que a função square da abertura. Quando o corpo é uma única expressão, o valor dela é devolvido automaticamente, sem chaves e sem a palavra return. Você vai ver arrow functions em todo código moderno.
O que é declarado dentro fica dentro
Parâmetros e variáveis declarados dentro de uma função só existem lá dentro. Isso se chama escopo. Duas funções diferentes podem ter cada uma uma variável chamada total sem interferir uma na outra, e o código fora de uma função não enxerga as variáveis privadas dela. Uma função pode ler variáveis declaradas fora dela, mas as funções mais limpas recebem tudo o que precisam pelos parâmetros e devolvem tudo pelo return, para que você consiga entendê-las sozinhas.
function nome(parâmetro) { return resultado; } const nome = (parâmetro) => resultado;
| função | Um bloco de código com nome que faz um trabalho |
| chamada | Executar uma função: nome(argumentos) |
| parâmetro | Uma variável da definição que recebe um valor |
| argumento | O valor passado numa chamada |
| return | Encerra a função e devolve um valor |
| parâmetro padrão | rate = 0.15: usado quando nenhum argumento é dado |
| arrow function | (n) => n * n |
| escopo | Onde uma variável pode ser vista; o que está dentro de uma função fica dentro |
- O que isto mostra?
function double(n) { return n * 2; } console.log(double(7)); - O que isto mostra?
function add(a, b) { return a + b; } console.log(add(2, 3) * add(1, 1)); - O que isto mostra?
function minus(a, b) { return a - b; } console.log(minus(3, 10)); - O que isto mostra?
function f(x) { return x + 1; console.log("hi"); } console.log(f(1));- 2
- hi, then 2
- 2, then hi
- O que isto mostra?
function show(n) { console.log(n); } const r = show(5); console.log(typeof r);- 5, then number
- 5, then undefined
- Only undefined
- O que isto mostra?
const triple = (n) => n * 3; console.log(triple(4)); - O que isto mostra?
function tip(bill, rate = 0.1) { return bill * rate; } console.log(tip(50)); - O que isto mostra?
function tip(bill, rate = 0.1) { return bill * rate; } console.log(tip(50, 0.2)); - O que isto mostra?
function sign(n) { if (n < 0) return "neg"; if (n === 0) return "zero"; return "pos"; } console.log(sign(0)); - Em
function area(w, h)chamada comoarea(3, 5), como se chamam w e h, e como se chamam 3 e 5?- w e h são parâmetros; 3 e 5 são argumentos
- w e h são argumentos; 3 e 5 são parâmetros
- Os quatro são valores de retorno
- function nome(params) { ... } define; nome(args) chama.
- Os argumentos são associados aos parâmetros em ordem.
- return encerra a função e devolve um valor; mostrar não é devolver.
- Parâmetros padrão preenchem argumentos que faltam.
- Arrow functions: (n) => n * n.
- Variáveis dentro de uma função ficam dentro (escopo).
Fontes deste curso (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
Data de verificação: 2026-10-17