【08】原始类型和引用类型的区别
01,
原始值是不可更改的:任何方法都无法更改(或“突变”)一个原始值。
引用值是可变的。
02,
原始值的比较是值的比较:只有在它们的值相等时它们才相等。
对象的比较并非值的比较:即使两个对象包含同样的属性及相同的值,它们也是不相等的。
各个索引元素完全相等的两个数组也不相等。
var o = {x:1}, p = {x:1}; // 具有相同属性的两个对象
o === p // => false: 两个单独的对象永不相等
var a = [], b = []; // 两个单独的空数组
a === b // => false: 两个单独的数组永不相等
对象的比较均是引用的比较:当且仅当它们引用同一个基对象时,它们才相等。
var a = []; // 定义一个引用空数组的变量a
var b = a; // 变量b引用同一个数组
b[0] = 1; // 通过变量b来修改引用的数组
a[0] // => 1: 变量a也会修改
a === b // => true:a和b引用同一个数组,因此它们相等