出于某种原因,当我尝试在文字编号上调用toString
时,它会失败:
> 5.toString()
SyntaxError: Unexpected token ILLEGAL
所以我尝试将它放在一个变量中,它起作用了:
> var five = 5
undefined
> five.toString()
"5"
我觉得这有点奇怪,经过一些更多的实验,我发现用括号括起一个文字会让它起作用:
> (5).toString()
"5"
这看起来非常奇怪!为什么在括号中包装文字会改变什么?为什么5.toString()
不起作用?
答案 0 :(得分:7)
数字后面的点.
表示小数点。
如果你这样做会有用;
5..toString();
为了澄清小数点后跟一个javascript中的数字,它希望下一个字符是一个数字的字符,所以如果toString()
存在,那么它被认为是t
的非法令牌不是有效的数字。
这是做同样事情的另一种有效方式,但更容易阅读和遵循;
5.0.toString();
答案 1 :(得分:2)
为什么在括号中包装文字会改变什么?
这会导致文字成为表达式。因此,您可以在表达式上调用方法.toString()
。由@Musa链接,数字之后的.
被解释为小数点,当遇到5.t时会导致抛出异常,因为t不是有效数字。