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)
错误类型
哪里出错了?
“形式参数”是“函数参数”的一种花哨说法。您的函数声明缺少有效参数。在函数的声明中,参数必须是 标识符,而不是任何值,例如数字、字符串或对象。声明函数和调用函数是两个独立的步骤。声明需要标识符作为参数,只有在调用(执行)函数时,您才提供函数应使用的值。
在 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" }