4

2 行目と 3 行目は正常に動作するのに、以下の 1 行目でエラーが発生するのはなぜですか?

1.toString(); // SyntaxError
(1).toString(); // OK
1['toString'](); // OK
4

4 に答える 4

12

.あいまいさを提示します。それは小数ですか、それともプロパティアクセサーですか?

インタープリターはこれを 10 進数と見なすため、 を使用..して 10 進数とプロパティ構文の両方を許可できます。

1..toString();

または、あいまいさを解決するために示す他の方法のいずれかを使用します。

于 2012-10-03T03:47:31.180 に答える
11

パーサーは1.浮動小数点リテラルの開始として処理しようとしています --toString無効な数値に変換するだけです。

と比べて:

1.0.toString()
于 2012-10-03T03:47:11.193 に答える