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