クロムコンソールでデバッグしていて、このエラーが見つかりました。このため基本的には、Math.ceil(00.1); Uncaught SyntaxError:missing)引数リストの後
Math.ceil(0.1); // Works
Math.ceil(00.1); // Doesn't work
何らかの理由/思考?
ありがとうございました。
クロムコンソールでデバッグしていて、このエラーが見つかりました。このため基本的には、Math.ceil(00.1); Uncaught SyntaxError:missing)引数リストの後
Math.ceil(0.1); // Works
Math.ceil(00.1); // Doesn't work
何らかの理由/思考?
ありがとうございました。
小数点以下のリテラルは、で始まり、0
で始まります。 the specから、NumericLiteralはDecimalLiteral、BinaryIntegerLiteral、OctalIntegerLiteral、またはHexIntegerLiteralです。あなたは.
が含まれているため、DecimalLiteralです。これは先行ゼロを1つだけ持つことができます。
DecimalLiteral::
DecimalIntegerLiteral . DecimalDigitsopt ExponentPartopt
. DecimalDigitsopt ExponentPartopt
DecimalIntegerLiteral ExponentPartopt
...
DecimalIntegerLiteral::
0
NonZeroDigit DecimalDigitsopt
と:
NumericLiteral::
DecimalLiteral
BinaryIntegerLiteral
OctalIntegerLiteral
HexIntegerLiteral
ユアーズがあるので.
のDecimalLiteral、次のとおりです。ここで
DecimalDigits::
DecimalDigit
DecimalDigits DecimalDigit
と
DecimalDigit:: one of
0 1 2 3 4 5 6 7 8 9
私は興味があります...なぜJSはOPのケースでこの特定のエラーをスローするのか?私は、JSが閉じ括弧が欠けていると思う理由について興味があります。 – AndroidNoobie
私の理解では、パーサーは構文によって混乱し、基本的に残りの文字列(閉じ括弧を含む)を使います。そして、それは、それがエラーを引き起こす引数定義の終わりを探すことから決して外に出ないことを意味します。 – raina77ow
@AndroidNoobie: '00'の後ろに括弧がありません。 '00'は整数リテラルとして解釈され、' .'メソッド呼び出し構文であるが、 '1'(正当なメソッド名ではない)を見る。それは最終的に近くのパンダを期待していたので、コードが "1"を呼び出そうとしたときにコードが軌道から外れてしまったとき、 "あなたはおそらく' 00の後に父親を見逃したでしょう。同様のエラー( 'SyntaxError:missing; beforeステートメント')が '00.1;'(あるいは古いオブジェクトの場合は 'foo.1;')でも同様の理由で取得できます。 – ShadowRanger
'00.1'が可能になっていますか? – connexo