javascript编号属性语法

Ans*_*shu 1 javascript syntax numbers

可能重复:
为什么我不能使用单个点访问整数的属性?

我正在阅读一篇文章,并遇到了javascript toFixed方法的奇怪行为.我不明白最后一句话的原因.有人可以解释一下吗?

(42).toFixed(2);//"42.00" 好的

42.toFixed(2); // SyntaxError:标识符在数字文字后立即开始

42..toFixed(2);//"42.00" 这真的很奇怪

Nie*_*sol 5

JavaScript中的数字基本上是正则表达式:

[+-]?[0-9]*(?:\.[0-9]*)?(?:[eE][+-]?[0-9]+)?
Run Code Online (Sandbox Code Playgroud)

请注意,量词是贪婪的.这意味着当它看到:

42.toFixed(2);
Run Code Online (Sandbox Code Playgroud)

它读取42.数字然后立即面对toFixed并且不知道如何处理它.

在这种情况下42..toFixed(2),数字42.不是42..因为正则表达式只允许一个点.然后它看到.哪个只能是对成员的调用,即toFixed.一切正常.

就可读性而言,(42).toFixed(2)其意图要清楚得多.