问题分析

问题

20.toString();
VM163:1 Uncaught SyntaxError: Invalid or unexpected token

分析

"."号的原因。当20.toString()的时候,这个"."是不明确的,是小数点符号,还是通过“.”来调用方法即对象成员访问。因为没有20.toString这样的浮点数,所以才会报错。而20.3.toString(),第一个点被解释成浮点数的小数点,第二个点被解释成对象访问,所以没有报错。

解决办法

方式一:

console.log(20..toString());

等价于20.0.toString()。

方式二:

console.log(20 .toString());

因为浮点数中数字和点之间不会有空格,所以此处不会再把这个点当成浮点数的点来解析了。

方式三:(推荐)

console.log((20).toString());

加个括号确保解析器解析时不会混淆。

方式四:

console.log(20["toString"]());

看起来比较别扭。

05-11 20:24