これは変です。これは、JavaScriptコンソールでChrome(バージョン42.0.2311.135、64ビット)で発生することです。
> 0
< 0
> 00
< 0
> 0.0
< 0
> 00.0
X Uncaught > SyntaxError: Unexpected number
Firefox 37.0.2も同じですが、エラーメッセージは次のとおりです。
SyntaxError: missing ; before statement
JavaScriptが数値を解析する方法については、おそらく技術的な説明があります。おそらく、コンソールプロンプトをいじくり回したときにのみ発生する可能性がありますが、それでも間違っているようです。
なぜそれをするのですか?
式0.0
と00.0
は異なる方法で解析されます。
0.0
は数値リテラルとして解析されます 100.0
は次のように解析されます:00
–8進数のリテラル 2.
–プロパティアクセサー0
–識別子名0
は有効なJavaScript識別子ではないため、コードは構文エラーをスローします。 toString
は有効な識別子であるため、次の例は機能します。
00.toString
1セクション7.8. –先頭の0の後に小数点またはExponentPart
2セクションB.1.1 –先頭の0の後にOctalDigitsを続けることができます
00
は8進数として評価され、.0
は、その番号のプロパティにアクセスしていると評価されます。ただし、整数をプロパティアクセサーとして使用することは許可されていないため、エラーがスローされます。
他のオブジェクトでも同じエラーが発生します。
'string'.0 // Syntax error: unexpected number
({}).0 // Syntax error: unexpected number
プロパティアクセサーに関する関連情報は [〜#〜] mdn [〜#〜] にあります。