可能的重复项:
为什么我无法访问带有单个点的整数的属性?
我正在阅读一篇文章,并遇到了javascript toFix方法的奇怪行为。我不明白最后一句话的原因。谁能解释一下?
(42).toFixed(2);
//"42.00" 好的
42.toFixed(2);
//语法错误:标识符在数字文字之后立即开始
42..toFixed(2);
//"42.00" 这看起来真的很奇怪
JavaScript 中的一个数字基本上是正则表达式中的:
[+-]?[0-9]*(?:.[0-9]*)?(?:[eE][+-]?[0-9]+)?
请注意,量词是贪婪的。这意味着当它看到:
42.toFixed(2);
它将42.
读取为数字,然后立即面对toFixed
,不知道如何处理它。
在 42..toFixed(2)
的情况下,这个数字是42.
但不是42..
,因为正则表达式只允许一个点。然后它看到只能是对成员的调用的.
,即toFixed
。一切正常。
就可读性而言,(42).toFixed(2)
的意图要清楚得多。
点不明确:小数点或调用成员运算符。因此错误。
42..toFixed(2);
相当于(42.).toFixed(2)