SyntaxError: function statement requires a name - JavaScript 编辑
The JavaScript exception "function statement requires a name" occurs when there is a function statement in the code that requires a name.
Message
Syntax Error: Expected identifier (Edge) SyntaxError: function statement requires a name [Firefox] SyntaxError: Unexpected token ( [Chrome]
Error type
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论