我得到这个JavaScript错误在我的控制台:

未捕获SyntaxError:意外令牌非法

这是我的代码:

Var foo = 'bar';

正如你所看到的,这非常简单。它怎么会导致语法错误呢?


当前回答

当我在错误指向的行后有一个未结束的字符串时,我在chrome中得到了这个错误。关闭字符串后,错误消失了。

错误示例:

var file = files[i]; // SyntaxError: Unexpected token ILLEGAL

jQuery('#someDiv').innerHTML = file.name + " (" + formatSize(file.size) + ") "
    + "<a href=\"javascript: something('"+file.id+');\">Error is here</a>";

示例无错误:

var file = files[i]; // No error

jQuery('#someDiv').innerHTML = file.name + " (" + formatSize(file.size) + ") "
    + "<a href=\"javascript: something('"+file.id+"');\">Error was here</a>";

其他回答

以下是我的理由:

之前:

var path = "D:\xxx\util.s"

其中\u是一个转义,我通过使用Codepen的分析JS找到了它。

后:

var path = "D:\\xxx\\util.s"

错误被修正了

我也遇到了同样的问题,因为我在文本字符串中添加代码时按了enter键。

因为它是一个很长的文本字符串,我想看到它,而不必在我的文本编辑器中滚动,然而,按enter添加了一个不可见的字符字符串,这是非法的。我使用Sublime Text作为编辑器。

我要在这堆答案里再加一个。这个问题也可能因为编码而发生。您希望utf8编码是安全的。一些编辑器默认使用utf16,这可能会导致问题。一个快速的测试方法是,例如在VS code中,简单地重新创建相同的内容,但使用vscode的本地编辑器来创建文件。 希望这能有所帮助。

当我在错误指向的行后有一个未结束的字符串时,我在chrome中得到了这个错误。关闭字符串后,错误消失了。

错误示例:

var file = files[i]; // SyntaxError: Unexpected token ILLEGAL

jQuery('#someDiv').innerHTML = file.name + " (" + formatSize(file.size) + ") "
    + "<a href=\"javascript: something('"+file.id+');\">Error is here</a>";

示例无错误:

var file = files[i]; // No error

jQuery('#someDiv').innerHTML = file.name + " (" + formatSize(file.size) + ") "
    + "<a href=\"javascript: something('"+file.id+"');\">Error was here</a>";

如果你正在运行一个nginx + uwsgi安装流浪者,那么主要的问题是在一些答案中提到的发送文件的虚拟盒错误。然而,要解决这个问题,你必须在nginx和uwsgi中禁用sendfile。

在nginx.conf sendfile掉 Uwsgi应用程序/配置 ——disable-sendfile