flo*_*nce 9 javascript requirejs r.js
我正在使用优化几个js文件r.js.它之前工作正常.最近,我修改了一些js代码,添加代码为:
var x = 08;
Run Code Online (Sandbox Code Playgroud)
然后它显示
错误:使用esprima解析文件D://webroot/js/a.js
错误:第45行:意外的令牌ILLEGAL.
第45行是我添加的地方var x = 08,09也会显示错误.似乎数字从0开始同时包含8或9非法.也许他们被视为bese 8号..?
我怎么能r.js忽略这一点并仍然优化js文件?
Pas*_*cal 15
我有同样的问题
当需要文件时,它只是一个双逗号.防爆
define([
'file1',
'file2',
'file3',,
'file4'
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
该错误是由Esprima引起的,它在r.js内部使用.要复制问题,您可以转到此页面并输入var x = 08;
一般来说,似乎JavaScript解释器会处理一个前导零的数字,可以将其解释为八进制数作为八进制数,但如果它不能被解释为八进制数(例如08),那么它们会将其视为十进制数. .
我用Node.js做了一个测试,得到了这个:
$ node
> 07
7
> 08
8
> 09
9
> 010
8
>
Run Code Online (Sandbox Code Playgroud)
而且更有趣:
> (function () {'use strict'; var x = 08;})()
undefined
> (function () {'use strict'; var x = 012;})()
SyntaxError: Octal literals are not allowed in strict mode.
[ ... traceback deleted ...]
Run Code Online (Sandbox Code Playgroud)
当严格模式打开时,octals是非法的.
我会避免octals,并且永远不会在JavaScript中用零填充任何数字.
| 归档时间: |
|
| 查看次数: |
8009 次 |
| 最近记录: |