SyntaxError: missing formal parameter
当你的函数声明缺少有效参数时,就会出现 JavaScript 异常“缺少形参”。
消息
SyntaxError: missing formal parameter (Firefox) SyntaxError: Unexpected number '3'. Expected a parameter pattern or a ')' in parameter list. (Safari) SyntaxError: Unexpected string literal "x". Expected a parameter pattern or a ')' in parameter list. (Safari)
错误类型
SyntaxError
哪里出错了?
“形参”是“函数参数”的一种花哨说法。你的函数声明缺少有效参数。在函数声明中,参数必须是标识符,而不是数字、字符串或对象等任何值。声明函数和调用函数是两个独立的步骤。声明需要标识符作为参数,并且只有在调用(执行)函数时,你才提供函数应该使用的值。
在JavaScript中,标识符只能包含字母数字字符(或“$”或“_”),并且不能以数字开头。标识符与字符串不同,字符串是数据,而标识符是代码的一部分。
示例
提供正确的函数参数
在设置函数时,函数参数必须是标识符。所有这些函数声明都失败了,因为它们为参数提供了值
js
function square(3) {
return number * number;
}
// SyntaxError: missing formal parameter
function greet("Howdy") {
return greeting;
}
// SyntaxError: missing formal parameter
function log({ obj: "value"}) {
console.log(arg)
}
// SyntaxError: missing formal parameter
你需要在函数声明中使用标识符
js
function square(number) {
return number * number;
}
function greet(greeting) {
return greeting;
}
function log(arg) {
console.log(arg);
}
然后你可以使用你喜欢的参数调用这些函数
js
square(2); // 4
greet("Howdy"); // "Howdy"
log({ obj: "value" }); // { obj: "value" }