← 返回首页
Erro de sintaxe: declaração de função requer um nome - JavaScript | MDN

Esta página foi traduzida do inglês pela comunidade. Saiba mais e junte-se à comunidade MDN Web Docs.

View in English Always switch to English

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

Errodesintaxe

O 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, um IIFE ou se o código da função está colocado corretamente neste contexto.

Exemplos

Statements vs expressions

Uma declaração de função (ou declaração de função) requer um nome, isso não vai funcionar:

js
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.

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

js
(function () {})();

Funçoes etiquetadas

Se usar labels, precisará providenciar um nome de função depois da palavra function . Isto não funciona:

js
function Saudacao() { alemao: function () { return "Moin"; } } // SyntaxError: a função declaração requer um nome

Isso funciona ,veja o exemplo:

js
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 de function é válida.

js
var saudacao = { alemao: function () { return "Moin"; }, };

Callback Sintaxe

Alem disso,cheque sua sintaxe usando callbacks. Colchetes e virgulas ficam facilmente atrapalhar e dificultar.

js
promessa.then( function() { console.log("sucesso"); }); function() { console.log("erro"); } // SyntaxError: function statement requires a name

O correto seria:

json
promise.then( function() { console.log("success"); }, function() { console.log("error"); } );//sempre que abrir feche();

Veja também