Våra volontärer har inte översatt denna artikel till Svenska ännu. Gå med oss och hjälpa till att få jobbet gjort!
Du kan också läsa artikeln på English (US).

Message

Syntax Error: Expected identifier (Edge)
SyntaxError: function statement requires a name [Firefox]
SyntaxError: Unexpected token ( [Chrome]

Error type

SyntaxError

What went wrong?

There is a function statement in the code that requires a name. You'll need to check how functions are defined and if you need to provide a name for it, or if the function in question needs to be a function expression, an IIFE, or if the function code is placed correctly in this context at all.

Examples

Statements vs expressions

A function statement (or function declaration) requires a name, this won't work:

function () {
  return 'Hello world';
}
// SyntaxError: function statement requires a name

You can use a function expression (assignment) instead:

var greet = function() {
  return 'Hello world';
};

Or, you function is maybe intended to be an IIFE (Immediately Invoked Function Expression), which is a function that runs as soon as it is defined. You will need a few more braces in this case:

(function () {

})();

Labeled functions

If you are using function labels, you will still need to provide a function name after the function keyword. This doesn't work:

function Greeter() {
  german: function () { 
    return "Moin";
  }
}
// SyntaxError: function statement requires a name

This would work, for example:

function Greeter() { 
  german: function g() { 
    return "Moin"; 
  } 
}

Object methods

If you intended to create a method of an object, you will need to create an object. The following syntax without a name after the function keyword is valid then.

var greeter = {
  german: function () {
    return "Moin";
  } 
};

Callback syntax

Also, check your syntax when using callbacks. Brackets and commas can get difficult easily.

promise.then(
  function() {
    console.log("success"); 
  });
  function() {
    console.log("error");
}
// SyntaxError: function statement requires a name

Correct would be:

promise.then(
  function() {
    console.log("success");
  },
  function() {
    console.log("error");
  }
);

See also

Dokumenttaggar och bidragare

Bidragare till denna sida: PatrickKettner, fscholz
Senast uppdaterad av: PatrickKettner,