繁体   English   中英

JavaScript括号将原始类型转换为对象

[英]JavaScript parentheses converts primitive type to object

如果数字是原始类型,为什么我可以这样做:

> (12345).toString()
"12345"

括号是否将原始类型转换为Number

不,括号只是让解析器理解了. 不是小数点。

12345 .toString()也可以。

每当您访问其属性时,原始数字都会隐式转换为Numbers,但这些对象是临时的并且会立即丢失。 例如:

var foo = 5;

foo.bar = "something";

console.log(foo.bar); // undefined

字符串和布尔值也是如此。

实际上, 1 .toString()也可以。

>>> typeof(Number(1)) === typeof(1)
true
>>> var a=1; a.toString()
"1"

它是解析器:1.x期望x是一个数字。

>>> 1.toString()
SyntaxError: identifier starts immediately after numeric literal
[Break On This Error]   

您可以在此处找到进一步说明

如果原语没有属性,为什么“abc”.length返回一个值?

因为JavaScript很容易在基元和对象之间强制转换。 在这种情况下,字符串值被强制转换为字符串对象以访问属性长度。 字符串对象只用了一小段时间,之后它被牺牲给了垃圾收集之神 - 但是根据电视发现节目的精神,我们将捕获难以捉摸的生物并保存它以供进一步分析......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM