Definição de Funções do JavaScript
- Página Anterior Referência de Objeto JS
- Próxima Página Parâmetros de Função JS
As funções JavaScript são definidas por meio de function
palavra-chavedefinirdo.
você pode usar funçãoDeclaraçãoou funçãoExpressão。
declaração de função
No início deste tutorial, você aprendeu a usar a seguinte sintaxeDeclaraçãofunção:
function nomeDaFunção(parâmetros) { Código a ser executado }
As funções declaradas não são executadas diretamente. Elas são 'salvadas para uso posterior' e serão executadas mais tarde, quando chamadas.
Exemplo
function myFunction(a, b) { return a * b; }
o ponto-e-vírgula é usado para separar instruções JavaScript executáveis.
Devido à funçãoDeclaraçãoNão são instruções executáveis e não é comum terminarem com ponto-e-vírgula.
expressões de função
As funções JavaScript também podem usarExpressãopara definir.
A expressão da função pode ser armazenada em uma variável:
Exemplo
var x = function(a, b) {return a * b};
Após armazenar a expressão da função na variável, essa variável pode ser usada como função:
Exemplo
var x = function(a, b) {return a * b}; var z = x(4, 3);
;Função anônimaFunção autoinvocável
As funções armazenadas em variáveis não precisam de nome. Elas são sempre chamadas pelo nome da variável.
A função acima termina com ponto-e-vírgula porque é parte de uma instrução executável.
construtor Function()
Como você viu em exemplos anteriores, as funções JavaScript são definidas por meio de function
palavras-chave.
As funções também podem ser definidas por meio de Function()
do construtor de função JavaScript embutido para definir.
Exemplo
var myFunction = new Function("a", "b", "return a * b"); As funções JavaScript podem ser usadas como valores:
Você realmente não precisa do construtor de função. O exemplo pode ser escrito assim também:
Exemplo
var myFunction = function (a, b) {return a * b}; As funções JavaScript podem ser usadas como valores:
Na maioria das vezes, você pode evitar usar new
palavra-chave.
Promoção de função
Aprendeu sobre "promocção" (hoisting) mais cedo neste tutorial.
Hoisting é o que o JavaScript fazDeclaraçãoO comportamento padrão de mover para o topo do escopo atual.
Hoisting é aplicado às declarações de variáveis e funções.
Por isso, as funções JavaScript podem ser chamadas antes da declaração:
myFunction(5); function myFunction(y) { return y * y; }
As funções definidas por expressão não são promovidas.
Função autoinvocável
A expressão de função pode ser "autoinvocável".
A expressão autoinvocável é chamada automaticamente (começando), sem a necessidade de chamada.
A expressão de função é executada automaticamente, se houver }
。
Você não pode autoinvocar uma declaração de função.
Você precisa adicionar parênteses ao redor da função para indicar que é uma expressão de função:
Exemplo
(function () { var x = "Hello!!"; // Eu vou me chamar a mim mesmo }}()
;A função acima é na verdade umaFunção autoinvocável
(funções anônimas)。
As funções podem ser usadas como valores
Exemplo
function myFunction(a, b) { return a * b; } As funções JavaScript podem ser usadas como valores:
var x = myFunction(4, 3);
Exemplo
function myFunction(a, b) { return a * b; } As funções JavaScript podem ser usadas em expressões:
var x = myFunction(4, 3) * 2;
As funções são objetos no JavaScript typeof
O operador retorna "function
"。
Mas é melhor descrever funções JavaScript como objetos.
Todas as funções JavaScript têmpropriedadeseMétodo。
arguments.length
Retorna o número de argumentos recebidos quando a função é chamada:
Exemplo
function myFunction(a, b) { return arguments.length; }
toString()
A método retorna uma função como uma string:
Exemplo
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();
As funções definidas como propriedades de objetos são chamadas de métodos de objetos.
As funções projetadas para criar novos objetos são chamadas de construtores de objetos (construtores de objetos).
Funções de seta
As funções de seta permitem usar uma sintaxe mais curta para escrever expressões de função.
Você não precisa da palavra-chave function, return ou chaves.
Exemplo
// ES5 var x = function(x, y) { return x * y; } // ES6 const x = (x, y) => x * y;
As funções de seta não têm seu próprio this. Elas não são adequadas para definir métodos de objeto.
As funções de seta não são promovidas. Elas devem ser definidas antes de serem usadas.
Usar const é mais seguro do que usar var, pois a expressão de função sempre é um valor constante.
Se a função é uma única instrução, o return e os parênteses podem ser omitidos. Portanto, mantê-los pode ser um bom hábito:
Exemplo
const x = (x, y) => { return x * y };
Versões anteriores ao IE11 não suportam funções de seta.
- Página Anterior Referência de Objeto JS
- Próxima Página Parâmetros de Função JS