Existem duas maneiras de declarar funções no JavaScript: função declarativa e expressão de função.
As diferenças são as seguintes:
1). Para funções definidas pelos métodos declarados por função, o nome da função é necessário, enquanto o nome da função da expressão da função é opcional.
2). As funções definidas pelos métodos declarados por função podem ser chamados antes da declaração da função, enquanto as funções das expressões de função só podem ser chamadas após a declaração.
3). As funções definidas pelos métodos declarados por função não são declarações reais. Eles só podem aparecer globalmente ou aninhados em outras funções, mas não podem aparecer em loops, condições ou tentar/pegar/finalmente, e
Expressões de função podem ser declaradas em qualquer lugar.
A seguir, são apresentados dois métodos para definir a função:
A cópia do código é a seguinte:
// Função de fórmula declarativa
função cumprimentando () {
console.log ("Hello World");
}
// Expressão da função
var saudando = function () {
console.log ("Hello World");
}
Aqui está um JavaScript interessante:
A cópia do código é a seguinte:
função f () {console.log ('estou fora!'); }
(function () {
if (false) {
// Repita a função f
função f () {console.log ('estou dentro!'); }
}
f ();
} ());
Qual será a saída? A primeira reação deve ser "estou fora". Como resultado, "eu estou dentro" é produzido no Chrome, o IE11 relatou diretamente um erro e a versão inferior das saídas do Firefox "estou fora" ...
O resultado da saída do Chrome reflete claramente as características das funções declaradas com expressões declarativas da função - as funções podem ser chamadas antes da declaração.
O erro do IE mostra que o objeto está faltando porque a declaração de função está na condição, que viola o princípio da declaração da função.
Escopo das expressões de função:
Se a função declarada pela expressão da função tiver um nome de função, o nome da função será equivalente a uma variável local da função e só poderá ser chamado dentro da função. Por exemplo, uma castanha:
A cópia do código é a seguinte:
var f = fato função (x) {
if (x <= 1)
retornar 1;
outro
retornar x*fato (x-1);
};
alerta (fact ()); // Uncathed ReferenceError: Fato não está definido
FACT () pode ser chamado dentro da função, mas um erro será relatado quando chamado fora da função: o fato não é definido
O exposto acima é tudo sobre este artigo, espero que gostem.