[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Errors/Unnamed_function_statement [Back]  [Original]

Erro de sintaxe: declarao de funo requer um nome - JavaScript | MDN

Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.

View in English Always switch to English

Erro de sintaxe: declarao de funo requer um nome

Mensagem

Errodesintaxe: Identificador Esperado(Edge)
Errodesintaxe: declarao de funo requer um nome [Firefox]
Errodesintaxe: Token inesperado ( [Chrome]

In this article

Tipo de erro

Errodesintaxe

O que estava errado?

Existe uma declarao no cdigo que requer um nome. Voc precisa checar como as funes so definidas e se voc precisa providenciar um nome, se a funo em questo precisa ser uma expresso de funo, um IIFE ou se o cdigo da funo est colocado corretamente neste contexto.

Exemplos

Statements vs expressions

Uma declarao de funo (ou declarao de funo) requer um nome, isso no vai funcionar:

js
function () {
  return 'Olha mundo';
}
// SyntaxError: function statement requires a name

Voc pode usar uma expresso de funo ao invs de uma atribuio.

js
var saudar = function () {
  return "Ola mundo";
};

Ou, sua funo pode ser pretendida a ser uma IIFE (Immediately Invoked Function Expression), qual uma funo que ser em breve definida. Voc vai precisar de um pouco mais de colchetes neste caso:

js
(function () {})();

Funoes etiquetadas

Se usar labels, precisar providenciar um nome de funo depois da palavra function . Isto no funciona:

js
function Saudacao() {
  alemao: function () {
    return "Moin";
  }
}
// SyntaxError: a funo declarao requer um nome

Isso funciona ,veja o exemplo:

js
function Saudacao() {
  alemao: function g() {
    return "Moin";
  }
}

Mtodos 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 vlida.

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 tambm


Web Proxy Viewer  |  New URL  |  Original Page