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 很容易在原语和对象之间强制。在这种情况下,字符串值被强制到字符串对象 为了访问属性长度。仅使用字符串对象 在几分之一秒之后,它被献祭给众神 垃圾收集 - 但本着电视发现节目的精神,我们 将困住这个难以捉摸的生物并保存它以供进一步分析......
相关文章:
- 在Javascript中转换对象数组
- 只能存储一种类型的对象的数组
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- 为什么Javascript程序员更喜欢在代码中重复字符串作为常量,而不是使用枚举类型的对象
- 类型错误:对象 #<对象> 没有方法“身份验证”
- 未捕获的类型错误:对象#<节点列表>没有方法'addEventListener'
- 什么类型的对象/属性是原型getter和setter
- 未捕获的类型错误:对象没有方法'sortContents'
- 未捕获的类型错误:对象#<对象>没有方法'绑定'-脊梁骨
- Javascript如何转换对象数组
- 未捕获的类型错误:对象#<HTMLDivElement>没有方法'偏移'
- 布尔类型转换系统(Java)
- 使用鸭子类型的对象键入字符串文字
- jQuery:在 $.each 中从字符串类型转换为字符串对象
- JavaScript 括号将基元类型转换为对象
- 是否可以像在Javascript对象中那样将整数值存储在localStorage中,并在不进行类型转换的情况下提取它
- 将JSON字符串转换为C#中的强类型类对象
- 请解释日期对象类型转换
- 将num或布尔类型json对象从字符串类型转换为其原始类型
- 在Javascript中对象或原语的类型转换更快