根据存储方式,变量分为 基本类型和引用类型。
1、基本类型:数值、布尔值、null、undefined
2、引用类型:对象、数组、函数
根据精粹里的描述,因为基本类型字节数确定,存储空间就可以确定了,传值的时候给新的变量在内存中也赋予了一个独立的空间,
而引用类型,因为字节数无法确定,所以并没有给新的变量赋予存储空间,而只是传址,赋予一个引用权利而已,所以原始变量变化的话,也会做相应的变化
这就很好解释,下面两段代码
var a=2;
var b=a;
var a=1;
console.log(b); //2
var c={ca:1,cb:2};
var d=c;
c.ca=3;
console.log(d); //{ca:3,cb:2}