以下代码之间有什么区别?
var a = 1;
a.toString(); // outputs: "1"
但这会引发错误:
1.toString();
SyntaxError:意外的标记ILLEGAL
为什么呢?为什么第一个代码有效但第二个代码会抛出错误?
答案 0 :(得分:12)
使用方法调用时,区分浮点和方法调用点非常重要。
因此,您无法编写1.toString();
,您必须使用以下备选方案之一:
1..toString()
1 .toString() //space before dot
(1).toString()
1.0.toString()
答案 1 :(得分:1)
toString()方法返回表示对象的字符串。
所以当你打电话时:
a.toString();
您实际上正在操作某个对象。实际上,在定义变量时,您实际上是在创建内置对象(在这种情况下,它是一个数字)。
执行此操作时:
1.toString();
toString()不会将1
视为对象或变量(在这种情况下两者都相同),因为它不符合规则:
变量必须以字母
开头
此处1
不以字母开头。所以toString()
知道它没有在对象上运行并抛出错误。
答案 2 :(得分:0)
尝试更改语法,
(1)的ToString()
数字可以有小数,因此当您去解析代码时,使用括号有效时,以小数结尾的语法有点模棱两可。当你发现这也是有效的时候会更清楚一点:
(1)。的toString()
然而只有
1.toString()它试图解析为带小数的数字,但它失败了。