原始值不能有属性和方法,但有些原始值加属性方法不报错?是包装类的存在

原始值是不可能有属性和方法的,但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

猜你喜欢

转载自blog.csdn.net/CS13477062349/article/details/82142155