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" }

另请参阅