JavaScript 数字属性语法



可能的重复项:
为什么我无法访问带有单个点的整数的属性?

我正在阅读一篇文章,并遇到了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)

最新更新