原始值是不可能有属性和方法的,但str.abc=1 不报错,为什么呢?因为经历了一个包装类。(boolean,String,number的原始值都可以加属性和方法,因为有包装类,但是null和undefined加属性和方法会报错(例外))
如:var test='abc';
test.length=2;
console.log(test.length)
test是原始值,不可能有属性和方法,但这里的test.length做了如下操作:String(test).length=2 然后马上销毁
delete String(test).length
当打印test.length时,再String(test).length。所以,此时,test.length=undefined