我正在使用r.js将几个js文件优化为一个。以前很好用。最近,我修改了一些js代码,将代码添加为:
var x = 08;然后它显示
错误:对文件D://webroot/js/a.js使用esprima解析错误 错误:第45行:意外令牌非法。
第45行是我添加var x = 08的地方,09也会显示错误。从0开始的数字似乎是非法的,同时包含8或9。也许他们被当作bese 8 .?
我怎么能让r.js忽略这一点而仍然优化js文件呢?
发布于 2014-09-23 07:11:04
我也有同样的问题
当需要文件时,它只是一个双逗号。例如
define([
'file1',
'file2',
'file3',,
'file4'希望这能有所帮助
发布于 2013-11-04 17:45:29
这个错误是由于r.js内部使用的Esprima造成的。要复制这个问题,可以转到此页并输入var x = 08;
一般来说,JavaScript解释器似乎会将一个带前导零的数字处理,可以将解释为一个八进制数,但是如果它不能被解释为一个八进制数(例如08),那么他们将把它看作十进制。
我用Node.js做了一个测试,得到了如下结果:
$ node
> 07
7
> 08
8
> 09
9
> 010
8
> 更有趣的是:
> (function () {'use strict'; var x = 08;})()
undefined
> (function () {'use strict'; var x = 012;})()
SyntaxError: Octal literals are not allowed in strict mode.
[ ... traceback deleted ...]当严格模式打开时,八进制是非法的。
在JavaScript中,我会避免八进制,也不会用零作为任何数字的前缀。
发布于 2015-06-18 10:57:44
当我在一个require模块中的一行if语句中忘记问号时,我也犯了同样的错误。
错误的线路:
var check = self.currentScroll() > self.lastScroll() ? 1 : self.currentScroll() < self.lastScroll() -1 : 0更正:
var check = self.currentScroll() > self.lastScroll() ? 1 : self.currentScroll() < self.lastScroll() ? -1 : 0https://stackoverflow.com/questions/19719386
复制相似问题