信息
SyntaxError: Expected ';' (Edge)
SyntaxError: missing ; before statement (Firefox)
错误类型
哪里出错了?
某个地方丢失了一个(;
)。 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);
};