使用或不使用变量的数字之间的差异

时间:2014-08-29 08:51:06

标签: javascript

以下代码之间有什么区别?

var a = 1;
a.toString(); // outputs: "1"

但这会引发错误:

1.toString();

SyntaxError:意外的标记ILLEGAL

为什么呢?为什么第一个代码有效但第二个代码会抛出错误?

3 个答案:

答案 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()它试图解析为带小数的数字,但它失败了。