Definição de Funções do JavaScript

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;
}

Experimente você mesmo

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};

Experimente você mesmo

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);

Experimente você mesmo

;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:

Experimente você mesmo

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:

Experimente você mesmo

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
}}()

Experimente você 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:

Experimente você mesmo

var x = myFunction(4, 3);

Exemplo

function myFunction(a, b) {
    return a * b;
}
As funções JavaScript podem ser usadas em expressões:

Experimente você mesmo

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;
}

Experimente você mesmo

toString() A método retorna uma função como uma string:

Exemplo

function myFunction(a, b) {
    return a * b;
}
var txt = myFunction.toString();

Experimente você mesmo

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;

Experimente você mesmo

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 };

Experimente você mesmo

Versões anteriores ao IE11 não suportam funções de seta.