计算机内存中存储数据的方式 分为两种方式
栈
有序存储数据
先定义的数据存储在 栈的底部 后定义的数据存储在栈的上方
栈中存储 基本数据类型 布尔类型 数值类型 字符串类型
变量直接存储在栈中
变量中直接存储数据
也就是说 基本数据类型 变量直接存储在 栈 中
变量中 直接存储数据
调用变量 调用的是 存储的数据数值
堆
无序存储数据
堆中存储引用数据类型 数值 对象 函数
先在 堆 中 开辟一个独立的存储空间 准备用于存储 引用数据类型
同时 window操作系统 会给 这个 存储空间赋值一个 内存地址
在 存储空间中 存储 引用数据类型的数据数值
变量仍然存储在 栈 中 变量中 存储 引用数据类型的内存地址
调用变量 是 读取变量中 存储的 内存地址
通过内存地址 找到 存储空间
调用 存储空间中 存储的数据数值
function fun1(){console.log(111)}
function fun2(){console.log(111)}
console.log( fun1 === fun2 );
console.log( fun1() === fun2() );
var arr1 = [1,2,3,4,5];
var arr2 = [1,2,3,4,5];
console.log( arr1 === arr2 );
var obj1 = {name:'张三',age:18};
var obj2 = {name:'张三',age:18};
console.log( obj1 === obj2 );