Javascript奇怪的点运算符语法

时间:2016-10-28 03:15:30

标签: javascript numeric literals

在Chrome控制台中,还可以在edge和firefox中进行测试

5.toFixed(2);

获取

  

未捕获的SyntaxError:无效或意外的令牌

in chrome。

  

SyntaxError:标识符在数字文字

之后立即开始

在firefox中。

  

预期';'

在边缘。

但是下面的代码

5.1.toFixed(2);
(5).toFixed(2);

在上面的所有三个浏览器中都可以。

1 个答案:

答案 0 :(得分:1)

这是因为JavaScript解析器假设例如5.toFixed(2)中的点属于数字文字。 (与5.一样,这是一个有效的数字文字。)这是因为JavaScript贪婪地解析(至少是数字文字)。

但是如果你做(5).toFixed(2),那么解析器很清楚你想要什么(这个点显然不是数字文字的一部分)。

5.1.toFixed(2)相同。第二个点显然不能属于数字文字,所以解析器有更好的时间。