javascript的数据类型分为两类: 原始类型 和对象类型(又基本类型和引用类型)
原始类型包括:
String, Boolean, Number, null, undefined
(null
和undefined
是两个特殊的原始值,代表了各自特殊类型的唯一成员)
对象是属性和方法的集合,每个属性都由“名/值对”构成。全局对象是比较特殊的对象。
对象类型包括:普通对象(“命名值”的无序集合),特殊对象-数组(带编号值的有序集合),函数。基本数据类型是按值访问的,因为可以操作保存在变量中的实际值。
引用类型的值是保存在内存中的对象。JS不允许直接访问内存中的位置,也就是说不能直接操作对象的内存空间。在操作对象时,实际上是在操作对象的引用而不是实际的对象,为此,应用类型的值是按照引用访问的。
var a = {"x": 1}; //对象是引用类型,这里把对象{"x": 1}的引用地址赋值给变量a
var b = a; //把a所引用的对象地址赋值给b,此时a和b指向同一个对象
a.x = 2; //把a所指向对象的属性x设置为2,此时该对象为{"x": 2}
b.x; //由于a和b指向同一个对象,所以b.x = a.x = 2
a = {"x":3}; //这里重新对a进行赋值,把一个新对象{"x": 3}的引用地址赋值给变量a,
//此时a指向这个新对象{"x": 3},而b仍然指向原来的对象{"x": 2}
console.log(b.x); //这里输出2就顺理成章了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。