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

另見