包装对象:
JavaScript对象是一种复合值,是属性或者已命名值得集合。
当属性值是一个函数的时候,称其为方法
存取字符串、数字和布尔值的属性时创建的临时对象称作包装对象,它只是用来区分字符串值和字符串对象、数字和数值对象以及布尔值和布尔对象。
字符串既然不是对象,为什么会有属性?
因为只要引用字符串的属性,JavaScript就会将字符串值通过new String()的方式将其转换成对象,同时这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会销毁。同样数字和布尔值通过Number()和Boolean()构造函数来创建临时对象。
不可变的原始值和可变的对象引用:
原始值(undefined、null、布尔值、数字和字符串)与对象(包含数组和函数)有根本区别。
对象的比较并非值得比较:即使两个对象包含同样的属性及相同的值,他们也是不相等的。各个索引元素完全相等的两个数组也不相等。指向的地址不同。(两个单独的对象 用不相等,两个单独的数组用不相等)