包装类型
js的基本数据类型是没有属性和方法的,但有的时候我们却能看到'abc'.indexof('a') , 12.35.toFixed(2)
,这时就会想它们调用的方法从何而来?
假设
const str = 'zhangsan'
str.length //8
str.indexof('z')
其实当我们在访问str.length
的时候,js会把'zhangsan'隐式的转换成String('zhangsan'),然后再对其的length
属性进行访问。
同理js也可以显式的使用Object
方法对基本类型进行转换包装
const str = 'mi'
Object(str) // String{'str'}
取值则需要调用valueOf
方法,同时此方法也可把包装类型转换成基本类型
const str = 'mi'
Object(str) // String{'str'}
const value = str.valueof() // 'mi'