Javascript 数学ceil(00.1);参数列表后未捕获的语法错误(缺少)

Javascript 数学ceil(00.1);参数列表后未捕获的语法错误(缺少),javascript,ceil,Javascript,Ceil,我在chrome控制台上调试时发现了这个错误。基本上 Math.ceil(0.1);//作品 数学ceil(00.1);//不起作用十进制文字只能以单个0开头。从中,数字文字是十进制文字、二进制整数文字、八进制整数文字或六进制整数文字。您的是小数位数,因为它包含一个。只能有一个前导零 以下是链接规则: 数字文字:: 分米线 二进制IntegerLiteral 八边 六积分法 因为,您的是一个小数位数,它是: 分位数:: 小数单位文字。小数位数选择指数部分选择 。小数位数选择指数部分选择 十进制

我在chrome控制台上调试时发现了这个错误。基本上

Math.ceil(0.1);//作品

数学ceil(00.1);//不起作用
十进制文字只能以单个
0
开头。从中,数字文字是十进制文字、二进制整数文字、八进制整数文字或六进制整数文字。您的是小数位数,因为它包含一个
。只能有一个前导零

以下是链接规则:

数字文字::

分米线
二进制IntegerLiteral
八边
六积分法

因为
,您的是一个小数位数,它是:

分位数::

小数单位文字。小数位数选择指数部分选择
。小数位数选择指数部分选择
十进制整数文字指数partopt

…在哪里

十进制整数:

0
非零位小数选择

小数位数::

小数位数
小数位数

小数位数::其中一位

0123456789


00.1
应该是什么?我很好奇……知道JS为什么在OP的案例中抛出这个特定错误吗?我只是好奇为什么JS认为缺少右括号。我的理解是解析器会被语法搞糊涂,基本上会占用字符串的其余部分(包括右括号)。这意味着它永远不会脱离触发错误的“查找参数结尾定义”状态。@AndroidNoobie:paren在
00
之后丢失
00
被解释为整数文本,
被解释为方法调用语法,但随后它会看到
1
(这不是合法的方法名称)。因为它期望最终会有一个接近的paren,而当你试图“调用”
1
时,代码偏离了轨道,它似乎会回过头来说“你可能错过了
00
之后的paren”。只执行
00.1
(或者对于任何旧对象,
foo.1;
),原因大致相同。