-2

出于某种原因,当我尝试调用toString文字数字时,它失败了:

> 5.toString()
SyntaxError: Unexpected token ILLEGAL

所以我试着把它放在一个变量中,它起作用了:

> var five = 5
undefined
> five.toString()
"5"

我觉得这有点奇怪,经过更多的实验后,我发现用括号括起来的文字会以某种方式使它起作用:

> (5).toString()
"5"

这似乎奇怪!为什么用括号括起来会改变任何东西?为什么不5.toString()工作?

4

2 回答 2

8

数字后面的点.代表小数点。

如果你这样做,它会起作用;

5..toString();

为了澄清javascript中小数点后跟数字的时间,它期望下一个字符是数字的字符,因此如果toString()存在则将其视为非法标记,因为t它不是有效数字。

这是做同样事情的另一种有效方式,但更容易阅读和遵循;

5.0.toString();
于 2013-05-20T22:41:12.200 回答
2

为什么用括号括起来会改变任何东西?

这会导致文字变成表达式。因此,您可以调用.toString()表达式的方法。正如@Musa 所链接的那样,.数字后面的数字被解释为小数点,导致在遇到 5.t 时引发异常,因为 t 不是有效数字。

于 2013-05-20T22:41:21.347 回答