SyntaxError: missing ) after argument list

JavaScript 異常 "missing ) after argument list"(引數列表後缺少 ")")發生在函式呼叫方式有誤時。這可能是由於拼寫錯誤、缺少運算子或未轉義的字串引起的。

訊息

SyntaxError: missing ) after argument list (V8-based & Firefox)
SyntaxError: Unexpected identifier 'x'. Expected ')' to end an argument list. (Safari)

錯誤型別

SyntaxError.

哪裡出錯了?

例如,函式呼叫方式有誤。這可能是拼寫錯誤、缺少運算子或未轉義的字串。

示例

由於沒有 "+" 運算子來連線字串,JavaScript 期望 log 函式的引數只是 "PI: "。在這種情況下,它應該以一個閉合括號結束。

js
console.log("PI: " Math.PI);
// SyntaxError: missing ) after argument list

你可以透過新增 + 運算子來更正 log 呼叫

js
console.log("PI: " + Math.PI);
// "PI: 3.141592653589793"

或者,你可以考慮使用模板字面量,或者利用 console.log 接受多個引數的事實

js
console.log(`PI: ${Math.PI}`);
console.log("PI:", Math.PI);

未終止的字串

js
console.log('"Java" + "Script" = \"' + "Java" + 'Script\");
// SyntaxError: missing ) after argument list

這裡 JavaScript 認為你打算在字串內部包含 ); 並忽略它,最終它不知道你打算用 ); 來結束函式 console.log。要解決這個問題,我們可以在 "Script" 字串後放一個 '

js
console.log('"Java" + "Script" = "' + "Java" + 'Script"');
// '"Java" + "Script" = "JavaScript"'

另見