SyntaxError: missing formal parameter

信息提示

SyntaxError: missing formal parameter (Firefox)

错误类型

SyntaxError

哪里出错了?

“形式参数” 是 “函数参数”一种更好的说法。函数声明缺少合法的参数定义。在函数声明中,参数定义必须为标记符(identifiers), 而不是任何类似于数字、字符串或者对象的值。函数声明和函数调用是两个不同的步骤。函数声明中的参数需要使用标记符,而仅仅在函数被呼叫(调用)的时候才可以传入其所需要的值。

JavaScript 中,标记符只能由字母、数字、"$" 以及 "_" 构成,并且不能以数字开头。标记符与字符串的区别在于字符串是数据,而标记符属于代码的一部分。

示例

在构造一个函数的时候,函数参数必须为标记符。下面列举的函数声明都是无效的,因为它们在参数部分使用的是数值:

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

需要在函数声明中使用标记符:

function square(number) {
  return number * number;
};

function greet(greeting) {
  return greeting;
};

function log(arg) {
  console.log(arg)
};

之后可以传入你想要传入的实际参数调用函数:

square(2); // 4

greet("Howdy"); // "Howdy"

log({obj: "value"}); // Object { obj: "value" }

相关内容