Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
Erro de sintaxe: declaração de função requer um nome
Mensagem
Errodesintaxe: Identificador Esperado(Edge)Errodesintaxe: declaração de função requer um nome [Firefox]Errodesintaxe: Token inesperado ( [Chrome]
In this article
Tipo de erro
ErrodesintaxeO que estava errado?
Existe uma declaração no código que requer um nome. Você precisa checar como as funções são definidas e se você precisa providenciar um nome, se a função em questão precisa ser uma expressão de função, umIIFE ou se o código da função está colocado corretamente neste contexto.
Exemplos
>Statements vs expressions
Umadeclaração de função (oudeclaração de função) requer um nome, isso não vai funcionar:
function () { return 'Olha mundo';}// SyntaxError: function statement requires a nameVocê pode usar uma expressão de função ao invés de uma atribuição.
var saudar = function () { return "Ola mundo";};Ou, sua função pode ser pretendida a ser umaIIFE (Immediately Invoked Function Expression), qual é uma função que será em breve definida. Você vai precisar de um pouco mais de colchetes neste caso:
(function () {})();Funçoes etiquetadas
Se usarlabels, precisará providenciar um nome de função depois da palavrafunction . Isto não funciona:
function Saudacao() { alemao: function () { return "Moin"; }}// SyntaxError: a função declaração requer um nomeIsso funciona ,veja o exemplo:
function Saudacao() { alemao: function g() { return "Moin"; }}Métodos de Objetos
Se pretende criar um metodo para um objeto, voce precisa-rá criar um objeto (hehehe). A seguir uma sintaxe sem nome depois defunction é válida.
var saudacao = { alemao: function () { return "Moin"; },};Callback Sintaxe
Alem disso,cheque sua sintaxe usando callbacks. Colchetes e virgulas ficam facilmente atrapalhar e dificultar.
promessa.then( function() { console.log("sucesso"); }); function() { console.log("erro");}// SyntaxError: function statement requires a nameO correto seria:
promise.then( function() { console.log("success"); }, function() { console.log("error"); });//sempre que abrir feche();