JavaScript中有两种大类型:引用类型 & 值类型.
就算在一些面向对象语言中也是一样的.
var o = {};//定义一个对象
var temp = o;//赋值
var temp2 = temp;//赋值
引用类型:temp保存的是o的指针(指向该对象的地址),temp和temp2都指向同一个内存地址,指向的对象也是相同的,并且如果改变其中一个,那么会影响到所有指向这个对象的变量.
值类型:存储在栈中,是直接赋值给定义的变量.
值类型在JavaScript中有:字符串 数字 布尔值 null undefined(E6新增的那个暂且不说),其余的都是Object
在这几个值类型中 string是比较特殊的,因为string 可以通过new String("")来实例化,也有indexof() length这样的方法,有一些类似于对象的操作,但是字符串的确是原始值,不是一个引用.算是一个特殊吧!