Javascript中(1.toString()和1.toString()的内部发生了什么
在JavaScript控制台中,如果键入以下内容:Javascript中(1.toString()和1.toString()的内部发生了什么,javascript,Javascript,在JavaScript控制台中,如果键入以下内容: 1.toString(); // Uncaught SyntaxError: Invalid or unexpected token (1).toString(); // "1" JS编译器中的这两条语句是怎么回事?1.toString()将1视为一个整数,并在之后使用数字 在(1).toString(),(1)是一个表达式,其中使用调用方法 ()是分组运算符,它返回其中表达式的值。在您的例子中,它是1,一个原始数字。因此,它可以被装箱到一
1.toString(); // Uncaught SyntaxError: Invalid or unexpected token
(1).toString(); // "1"
JS编译器中的这两条语句是怎么回事?1.toString()
将1视为一个整数,并在之后使用数字
在(1).toString()
,(1)是一个表达式,其中使用
调用方法 ()
是分组运算符,它返回其中表达式的值。在您的例子中,它是1
,一个原始数字。因此,它可以被装箱到一个Number
对象中,并调用其方法toString
但是对于1.toString()
,JS引擎无法确定
是什么意思-点运算符(对于对象方法)还是浮点数
要解决此混淆,如果不使用分组运算符,有两种方法:
1.toString()
//一个空格,其作用类似于分组运算符
1..toString()
//两个点,其中第二个点被视为点运算符
同意@Prajeet和@Leo
如-点表示法所述
1 //Next Line
.toString() //Prints "1"
来自Mozilla.org:
我们必须指出点是分隔小数部分还是对象属性。1.toString()//这将给出错误,因为在基本数据类型Number/integer上没有toString方法,但当您执行(1.toString())时,javascript会在内部执行类型corresion,并将数字1转换为字符串“1”然后对其应用toString方法。“1”。toString();//"1". 你的理解是有道理的。但是如果function(){}()//意外的标记会怎么样呢。和(function(){}())//没关系代码>为什么不能直接调用匿名函数?@lvaroGonzález@atul,那么1.2.toString()呢;//“1.2”@atul:你说的不对。原语值确实没有方法,但是(1)
并没有将值转换为字符串,您可以通过执行typeof(1)
1.0轻松找到它。toString()
也可以工作。