SyntaxError: function statement requires a name - JavaScript 编辑
错误提示
SyntaxError: function statement requires a name [Firefox] SyntaxError: Unexpected token ( [Chrome]
错误类型
哪里出错了?
函数声明需要提供函数名称。你需要检查函数是如何定义的,是否需要为其提供名称,出现问题的函数是否需要声明为函数表达式或立即调用函数表达式(IIFE),以及函数在上下文环境中出现的位置是否正确。
示例
语句与表达式
函数语句(或函数声明)需要命名,以下写法是不正确的:
function () {
return 'Hello world';
}
// SyntaxError: function statement requires a name
你可以使用函数表达式(赋值)来代替:
var greet = function() {
return 'Hello world';
};
者是你想将其作为立即调用函数表达式(IIFE,Immediately Invoked Function Expression),也就是定义后立即执行的函数。在这种情况下你需要用到更多的括号:
(function () {
})();
标号函数(Labeled functions)
你使用函数标号(labels)的时候, 也需要在关键词 function
后面提供一个函数名称. 这样的代码是不能运行的:
function Greeter() {
german: function () {
return "Moin";
}
}
// SyntaxError: function statement requires a name
这个例子可以正常运行:
function Greeter() {
german: function g() {
return "Moin";
}
}
对象方法
如果你想创建创建一个对象方法,那么需要首先创建一个对象。以下语法(function 关键字后面没有提供名称)是合法的:
var greeter = {
german: function () {
return "Moin";
}
};
回调函数的语法
另外,如果使用到了回调函数,那么检查一下语法是否正确。大括号与逗号很容易使情况变糟。
promise.then(
function() {
console.log("success");
});
function() {
console.log("error");
}
// SyntaxError: function statement requires a name
正确的形式应该是这样的:
promise.then(
function() {
console.log("success");
},
function() {
console.log("error");
}
);
相关内容
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论