ECMAScript 变量可能包含两种不同数据类型的值: 基本数据类型和引用数据类型
基本数据类型指的是简单的数据段, 而引用类型值指的就是由多个值构成的对象.
动态的属性, 定义基本类型值和引用类型值得方法是类似的, 创建一个变量并为该变量赋值. 对不同类型值可以执行的操作大相径庭, 但对于引用类型的值, 我们可以为其添加属性和方法, 也可以改变和删除其他属性和方法.
复制变量值复制变量值除了保存的方式不同之外, 从一个变量向另一个变量复制基本类型的值, 会在变量对象上创建一个新的值, 然后把该值复制到为新变量分配的位置上, 当从一个变量向另一个变量复制引用类型的值时, 同样也会将存储在变量对象中的值复制一份放到为新变量分配的空间中. 不同的是, 这个值得副本实际上是一个指针, 而这个指针指向存储在堆中的一个对象. 复制操作结束后, 两个变量实际上将引用同一个对象.
检测类型要检测一个变量是不是基本数据类型, 使用 typeof 操作符. typeof 操作符是确定一个变量是字符串, 数值, 布尔值, 还是 undefined 的最佳工具, 如果变量的值是一个对象或 null 则 typeof 操作符会返回 object. 根据规定, 所有的引用类型的值都是 Object 的实例, 因此, 在检测一个引用类型值和 object 构造函数时, instanceof 操作符始终会返回 true.
来源: http://www.qdfuns.com/note/49226/eea1254e1d404101619988693a6e3312.html