基本类型
Undefined,Null,Boolean,Number,String
引用类型
引用类型的值是保存在内存中的对象。与其他语言不同,JS不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象。为此,引用类型的值是按引用访问的。
动态属性
不能给基本类型的值添加属性,例如:

复制变量值
当从一个变量向另一个变量复制引用类型的值时,同样也会存储在变量对象中的值复制一份放到新变量分配的空间中。不同的是,这个值的副本实际是一个指针,而这个指针指向存储在堆中的一个对象。复制操作结束后,两个变量实际上将引用一个对象。 因此,改变其中一个变量,就会影响另一个变量,如下:

类型检测
typeof, instanceof
typeof variable
alert(colors instance Array) // true or false
alert(person instance Object) // true or false
在检测一个引用类型值和Object构造函数时,instanceof 操作符始终放回true;检测基本类型的值,始终返回false。