问题分析
问题
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"]());
看起来比较别扭。