--- title: 'Erro de sintaxe: declaração de função requer um nome' slug: Web/JavaScript/Reference/Errors/Unnamed_function_statement tags: - Erro - Erro de Sintaxe - JavaScript - Statement translation_of: Web/JavaScript/Reference/Errors/Unnamed_function_statement original_slug: Web/JavaScript/Reference/Errors/NãoNomeado_funcão_declaração ---
Errodesintaxe: Identificador Esperado(Edge) Errodesintaxe: declaração de função requer um nome [Firefox] Errodesintaxe: Token inesperado ( [Chrome]
{{jsxref("Errodesintaxe")}}
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, um {{Glossary("IIFE")}} ou se o código da função está colocado corretamente neste contexto.
Uma declaração de função (ou declaração de função) requer um nome, isso não vai funcionar:
function () { return 'Olha mundo'; } // SyntaxError: function statement requires a name
Você 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 uma IIFE (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 () { })();
Se usar labels, precisará providenciar um nome de função depois da palavra function
. Isto não funciona:
function Saudacao() { alemao: function () { return "Moin"; } } // SyntaxError: a função declaração requer um nome
Isso funciona ,veja o exemplo:
function Saudacao() { alemao: function g() { return "Moin"; } }
Se pretende criar um metodo para um objeto, voce precisa-rá criar um objeto (hehehe). A seguir uma sintaxe sem nome depois de function
é válida.
var saudacao = { alemao: function () { return "Moin"; } };
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 name
O correto seria:
promise.then( function() { console.log("success"); }, function() { console.log("error"); } );//sempre que abrir feche();