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

未捕获SyntaxError:意外令牌非法

这是我的代码:

Var foo = 'bar';

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


当前回答

如果您从另一个文档(如PDF)复制代码到控制台并试图运行它,也可能会发生这种情况。

我试图从我正在阅读的Javascript书中运行一些示例代码,很惊讶它不能在控制台中运行。

显然,从PDF中复制会在代码中引入一些意想不到的、非法的、看不见的字符。

其他回答

我在我的mac上也有同样的问题,发现这是因为mac正在用不合法的javascript字符替换标准引号。

为了解决这个问题,我不得不改变我的mac上的设置系统首选项=>键盘=>文本(选项卡)取消勾选使用智能引号和破折号(默认勾选)。

以下是我的理由:

之前:

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

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

后:

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

错误被修正了

我把所有的空间区域都改为&nbsp,就像这样,它工作起来没有问题。

Val.replace (" ", "&nbsp");

我希望它能帮助到一些人。

当运行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

如果您从另一个文档(如PDF)复制代码到控制台并试图运行它,也可能会发生这种情况。

我试图从我正在阅读的Javascript书中运行一些示例代码,很惊讶它不能在控制台中运行。

显然,从PDF中复制会在代码中引入一些意想不到的、非法的、看不见的字符。