计算机无法直接操纵硬盘,是操作硬盘里的内存条,内存条里分 栈 与 堆
基本数据类型存在栈里,引用数据类型放在堆里
引用数据类型:function object
例如 a 值 6放在栈区
var haha=function(){} haha 放在栈区,对应的值是函数代码块在堆区的地址
把一个函数赋值给另一个函数,在内存条栈区里赋值的是指向堆区的地址
a原本值为6,现在改成15,内存运作机理:
把原先的栈地址还原成:s1010 对应值不变,开辟新的地址,存放 a ,对应值为15.因此原先的数据还存在可用一定手段恢复数据。
基本数据类型比较的是值,值相等,故为true:
引用数据类型比较的是地址;
代码块相同,但是在堆区开辟了不同的空间,在栈区上的指针信息不等,故为false
ba 没开辟堆空间,共用一个堆空间,ba=ha,是将 ha指向地址赋值给ba,故比较地址信息相等为true;