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

toString only works with parenthesis or non-literal numbers

本文关键字:文字 数字 适用于 toString      更新时间:2023-09-26

由于某些原因,当我尝试在文字数字上调用toString时,它失败了:

> 5.toString()
SyntaxError: Unexpected token ILLEGAL

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

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

我认为这有点奇怪,经过更多的实验,我发现在括号中包装一个字面量不知何故可以工作:

> (5).toString()
"5"

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

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

如果你这样做就可以了;

5..toString();

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

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

5.0.toString();

为什么用括号括住文字会改变什么呢?

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