js基本数据类型: number, string, boolean, null, undefined, symbol
如果我们想将这些基本数据类型转换成对象类型怎么办呢?
通用方法:Object() 或 new Object()
( 注意: Object() 和 new Object() 行为是一致的也就是一个意思 )
let a = Object( 100 )
let b = Object( 'hi man' )
let c = Object( true )
let d = Object( Symbol( 'only' ) )
let e = Object( null ) // 输出为 {}
let f = Object( undefined ) // 输出为 {}
特定方法: new + Number | String | Boolean
let a = new Number( 100 )
let b = new String( 'hi man' )
let c = new Boolean( true )
好了,我们看到了,这样就转换成了对象,也就是所谓的 包装对象
js包装对象的原型上有两个通用的方法: toString(), valueOf()
let x = new Number( 888 )
x.toStirng() // '888'
x.valueOf() // 888
let y = Object( Symbol() )
y.toString() // 'Symbol()'
y.valueOf() // Symbol()
注意: 转换为对象后,可以使用对象原型上的所有方法哦
重点来了
上文中的转换都是显示转换,而我们在实际是使用时是可以 隐式转换 的
'mei li de yi tian'.length // 字符串隐式转换为字符串对象使用
( 666 ).toString() // 数字隐式转换为Number对象使用, 注意: 数字必须加括号才能被隐式转换
true.toString() // 布尔值隐式转换成为Boolean对象
Symbol( 'only' ).toString() // symbol值被隐式转换为 symbol包装对象
需要注意的是: 隐式转换只是一种临时转换,使用完后会被自动销毁, 并且 转换后的包装对象是只读的不能被修改
let str = 'meili'
str.x = 999
console.log( str.x ) //undefined
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。