引用类型(object)
引用类型的值(对象)是引用类型的一个实例,在ECMAScript中是一种数据结构,用于将数据和功能组织在一起,它们也常被称为类,但这并不恰当。引用类型有时也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法。他们一般都是按引用访问的(在函数中,是按值访问,传递的值是对象地址)
基本类型
基本类型值指的是简单的数据段,五中基本数据类型分别为:undefined, null, boolean, number, string, 它们是按值访问的。基本类型不允许有属性或方法
基本包装类型
定义
与引用类型类似,但同时具有与各自的基本类型相应的特殊行为
如:Boolean, Number, String
解释
要明白基本包装类型,首先从一个例子入手
var s1 = "some text";
var s2 = s1.substring(2);
逻辑上,基本类型是不允许有方法的,那上述是怎么实现的呢?
这两段代码在后台的工作过程是这样的:
1. 创建一个String类型的实例(创建的这个实例就叫做基本包装类型)
2. 在实例上调用substring方法
3. 销毁这个实例
结论
引用类型和基本包装类型的主要区别就是对象的生存期(基本包装类型也被当作对象)。引用类型的实例在执行流离开当前作用域之前一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间(如上),然后立即被销毁。因此,这意味着我们不能再运行时为基本类型值加属性和方法
摘自《JavaScript高级程序设计》