toString仅适用于括号或非文字数字

时间:2013-05-20 22:37:25

标签: javascript string tostring parentheses

出于某种原因,当我尝试在文字编号上调用toString时,它会失败:

> 5.toString()
SyntaxError: Unexpected token ILLEGAL

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

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

我觉得这有点奇怪,经过一些更多的实验,我发现用括号括起一个文字会让它起作用:

> (5).toString()
"5"

这看起来非常奇怪!为什么在括号中包装文字会改变什么?为什么5.toString()不起作用?

2 个答案:

答案 0 :(得分:7)

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

如果你这样做会有用;

5..toString();

为了澄清小数点后跟一个javascript中的数字,它希望下一个字符是一个数字的字符,所以如果toString()存在,那么它被认为是t的非法令牌不是有效的数字。

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

5.0.toString();

答案 1 :(得分:2)

为什么在括号中包装文字会改变什么?

这会导致文字成为表达式。因此,您可以在表达式上调用方法.toString()。由@Musa链接,数字之后的.被解释为小数点,当遇到5.t时会导致抛出异常,因为t不是有效数字。