SyntaxError: missing ) after condition

JavaScript 异常 "条件后缺少 )" 发生在 if 条件的写法有误时。它必须出现在 if 关键字后的括号中。

消息

SyntaxError: missing ) after condition (Firefox)
SyntaxError: Unexpected token '{'. Expected ')' to end an 'if' condition. (Safari)

错误类型

SyntaxError

哪里出错了?

if 条件的写法有误。在任何编程语言中,代码都需要根据不同的输入做出决策并执行相应的操作。if 语句在指定条件为真时执行一个语句。在 JavaScript 中,这个条件必须出现在 if 关键字后的括号中,像这样

js
if (condition) {
  // do something if the condition is true
}

示例

缺少括号

这可能只是一个疏忽,请仔细检查代码中的所有括号。

js
if (Math.PI < 3 {
  console.log("wait what?");
}

// SyntaxError: missing ) after condition

要修复此代码,您需要添加一个括号来闭合条件。

js
if (Math.PI < 3) {
  console.log("wait what?");
}

关键字“is”的误用

如果您来自其他编程语言,也很容易添加在 JavaScript 中含义不同或根本没有含义的关键字。

js
if (done is true) {
 console.log("we are done!");
}

// SyntaxError: missing ) after condition

相反,您需要使用正确的比较运算符。例如

js
if (done === true) {
  console.log("we are done!");
}

或者更好的是

js
if (done) {
  console.log("we are done!");
}

另见