var s = 'string'
console.log(s.length) //6
s.t = 6
console.log(s.t) //undefined
var str = new String('string')
console.log(str.length) //6
str.t = 6
console.log(str.t) // 6
但基本数据类型尝试用对象的方式来使用时,如访问length属性,添加自定义属性时,Javascript会智能地将基本数据类型转换为包装对象类型,如String。当完成访问或设置时,临时对象会被销毁,故打印s.t为undefined。