SyntaxError: missing ; before statement

信息

SyntaxError: Expected ';' (Edge)
 SyntaxError: missing ; before statement (Firefox)

错误类型

SyntaxError.

哪里出错了?

某个地方丢失了一个(;)。 JavaScript 语句必须以分号结束。 有一些是由 自动分号插入(ASI) 的使用所影响到的, 但在这种情况下,你需要提供一个分号,以便于JavaScript可以将源代码解析正确。然而,通常情况下,这个错误只是另一个错误一个导致的,如不正确转义字符串,使用var的错误。你也可能有太多的括号的地方。当出现此错误时,仔细检查语法。

例子

 

转义字符串

这个错误可能发生不正确时容易转义字符串JavaScript引擎是希望你的字符串的末尾已经。例如:

var foo = 'Tom's bar';
// SyntaxError: missing ; before statement

你可以用双引号,或者用\转义:

var foo = "Tom's bar";
var foo = 'Tom\'s bar';

用var声明属性

你不能将带有变量声明的对象或数组的属性用var来声明。

var obj = {};
var obj.foo = "hi"; // SyntaxError missing ; before statement

var array = [];
var array[0] = "there"; // SyntaxError missing ; before statement

而是省略掉var关键词:

var obj = {};
obj.foo = "hi";

var array = [];
array[0] = "there";

不推荐使用的关键字

如果你用的是另一种编程语言,那么在javaScript中使用不具有相同或完全没有意义的关键字也是很常见的:

def print(info){
  console.log(info);
}; // SyntaxError missing ; before statement

因此,建议使用function而不是def

function print(info){
  console.log(info);
};

 

参考