数据
- 是什么
- 本质为二进制
- 特点
- 可读
- 可传递 b=a 注意:万物皆数据,函数也是数据
内存
- 是什么?
- 内存条通电后产生的存储空间(临时)
- 产生:通电;结束:断电
- 栈主要存储 基本变量、占用内存小
- 堆主要存储 引用、地址 对象,占用空间大
变量
- 是值可以变化的量
数据、内存、变量三者的关系
* 赋值操作传递的是地址值
* 变量保存的是基本变量类型
* 对象保存地址值
内存是一个容器, 用来存储程序运行需要操作的数据
变量是内存的标识, 我们通过变量找到对应的内存, 进而操作(读/写)内存中的数据
JavaScript如何管理内存
- 释放内存:
- 没有引用的时候将对象的值赋为null,在堆中释放,但是栈中的变量没有释放
- 为执行函数分配的栈空间内存: 函数执行完自动释放(函数自上而下的执行,执行完毕后的函数不再执行,释放掉)
- 注意:闭包