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









ox1dp6ei
1 声望1 粉丝

为了生活下海做了程序员...