--- title: Declaração de função slug: Web/JavaScript/Reference/Statements/function translation_of: Web/JavaScript/Reference/Statements/function ---
A declaração function define uma função com os especificados parâmetros.
Você pode também definir funções usando o construtor {{jsxref("Function")}} e uma {{jsxref("Operators/function", "function expression")}}.
function name([param,[, param,[..., param]]]) { [statements] }
name
param
statements
Uma função criada com uma declaração function é um objeto Function
e tem todas as propriedades, métodos e comportamentos dos objetos Function
. Veja {{jsxref("Function")}} para informações detalhadas sobre as funções.
Uma função pode também ser criada usando uma expressão (veja {{jsxref("Operators/function", "function expression")}}).
Por padrão, funções retornam undefined
. Para retornar qualquer outro valor, a função precisa ter uma instrução {{jsxref("Statements/return", "return")}} que especifica o valor para retorno.
Funções podem ser condicionalmente declaradas, isso é, uma instrução de função pode ser aninhada dentro de uma instrução if
. A maioria dos navegadores que não sejam Mozilla ir tratar essas declarações condicionais como uma incondicional e criará a função se a condição for true ou não, veja esse artigo para uma visão geral. Portanto, ela não pode ser usada para criação de expressões de função condicional.
Declarações de funções em JavaScript são hoisted à definição da função. Você pode usar uma função antes de tê-la declarado:
hoisted(); // logs "foo" function hoisted() { console.log("foo"); }
Note que {{jsxref("Operators/function", "function expressions")}} não são hoisted:
notHoisted(); // TypeError: notHoisted is not a function var notHoisted = function() { console.log("bar"); };
O seguinte código declara uma função que retorna a quantidade total das vendas, quando dados os números de unidades vendidas dos produtos a, b e c.
function calc_sales(units_a, units_b, units_c) { return units_a * 79 + units_b * 129 + units_c * 699; }
Specification | Status | Comment |
---|---|---|
{{SpecName('ESDraft', '#sec-function-definitions', 'Function definitions')}} | {{Spec2('ESDraft')}} | |
{{SpecName('ES6', '#sec-function-definitions', 'Function definitions')}} | {{Spec2('ES6')}} | |
{{SpecName('ES5.1', '#sec-13', 'Function definition')}} | {{Spec2('ES5.1')}} | |
{{SpecName('ES3', '#sec-13', 'Function definition')}} | {{Spec2('ES3')}} | |
{{SpecName('ES1', '#sec-13', 'Function definition')}} | {{Spec2('ES1')}} | Definição inicial. Implementado em JavaScript 1.0. |
{{CompatibilityTable}}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} |