Math.ceil(00.1); Uncaught SyntaxError: missing ) after argument list

Math.ceil(00.1); Uncaught SyntaxError: missing ) after argument list

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

Math.ceil(0.1); // Works
Math.ceil(00.1); // Doesn't work

有什么原因/想法吗?

谢谢。

十进制文字只能以单个 0开头。从 the spec 开始,NumericLiteralDecimalLiteralBinaryIntegerLiteral OctalIntegerLiteral,或HexIntegerLiteral。你的是 DecimalLiteral 因为它包含 .。那只能有一个前导零。

链接规则如下:

NumericLiteral::

     DecimalLiteral
     BinaryIntegerLiteral
     OctalIntegerLiteral
     HexIntegerLiteral

你的是 DecimalLiteral 因为 .,它是:

DecimalLiteral::

     DecimalIntegerLiteral . DecimalDigitsopt ExponentPartopt
     . DecimalDigitsopt ExponentPartopt
     DecimalIntegerLiteral ExponentPartopt

...其中

DecimalIntegerLiteral::

     0
     NonZeroDigit DecimalDigitsopt

DecimalDigits::

     DecimalDigit
     DecimalDigits DecimalDigit

DecimalDigit:: one of

     0 1 2 3 4 5 6 7 8 9