我得到这个JavaScript错误在我的控制台:
未捕获SyntaxError:意外令牌非法
这是我的代码:
Var foo = 'bar';
正如你所看到的,这非常简单。它怎么会导致语法错误呢?
我得到这个JavaScript错误在我的控制台:
未捕获SyntaxError:意外令牌非法
这是我的代码:
Var foo = 'bar';
正如你所看到的,这非常简单。它怎么会导致语法错误呢?
当前回答
如果您从另一个文档(如PDF)复制代码到控制台并试图运行它,也可能会发生这种情况。
我试图从我正在阅读的Javascript书中运行一些示例代码,很惊讶它不能在控制台中运行。
显然,从PDF中复制会在代码中引入一些意想不到的、非法的、看不见的字符。
其他回答
我要在这堆答案里再加一个。这个问题也可能因为编码而发生。您希望utf8编码是安全的。一些编辑器默认使用utf16,这可能会导致问题。一个快速的测试方法是,例如在VS code中,简单地重新创建相同的内容,但使用vscode的本地编辑器来创建文件。 希望这能有所帮助。
我在我的mac上也有同样的问题,发现这是因为mac正在用不合法的javascript字符替换标准引号。
为了解决这个问题,我不得不改变我的mac上的设置系统首选项=>键盘=>文本(选项卡)取消勾选使用智能引号和破折号(默认勾选)。
如果你正在运行一个nginx + uwsgi安装流浪者,那么主要的问题是在一些答案中提到的发送文件的虚拟盒错误。然而,要解决这个问题,你必须在nginx和uwsgi中禁用sendfile。
在nginx.conf sendfile掉 Uwsgi应用程序/配置 ——disable-sendfile
当运行OS X时,文件系统会为基本上所有文件创建隐藏的分叉,如果它们位于不支持HFS+的硬盘驱动器上。这有时会导致你的JavaScript引擎试图运行data-fork,而不是你想让它运行的代码。当这发生时,你也会收到
SyntaxError: Unexpected token ILLEGAL
因为你的文件的数据分支将包含Unicode U+200B字符。删除数据分叉文件将使脚本运行实际的、预期的代码,而不是代码的二进制数据分叉。
.whatever : These files are created on volumes that don't natively support full HFS file characteristics (e.g. ufs volumes, Windows fileshares, etc). When a Mac file is copied to such a volume, its data fork is stored under the file's regular name, and the additional HFS information (resource fork, type & creator codes, etc) is stored in a second file (in AppleDouble format), with a name that starts with ".". (These files are, of course, invisible as far as OS-X is concerned, but not to other OS's; this can sometimes be annoying...)
戈登·戴维森@ http://www.westwind.com/reference/OS-X/invisibles.html
当我在错误指向的行后有一个未结束的字符串时,我在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>";