JavaScript中的双点语法 - 这个表达式在做什么以及它是如何有效的语法?

时间:2014-07-22 15:19:13

标签: javascript

    14.toString();
    // Result -> SyntaxError: Unexpected token ILLEGAL

    14..toString();
    // Result -> "14"

在数字执行后放置一个额外的点是什么,这个有效的语法是什么?

2 个答案:

答案 0 :(得分:4)

14.是一个数字。 .toString()在该号码上调用方法。

因此14..toString()14.0.toString()相同。

您无法14.toString(),因为.仍然是浮点数,而不是访问符号的属性。

答案 1 :(得分:2)

重要的是要记住解析器是贪婪的。

它看到了1,所以它开始读取一个数字。 4在数字中有效,.在数字中有效,t不是,所以它会停止。

因此它的数字为14.(仅为14)。现在该怎么办?呃......那里有一个t,这是无效的,错误!


在第二种情况下,.在数字中有效,.有效,但我们已经有一个点,所以请停在那里。

我们再次14.,但这次查看操作时会看到.,因此会将14.转换为Number对象,然后调用{{ 1}},结果toString()


另请参阅:Why does "a + + b" work, but "a++b" doesn't?