JavaScript的数据类型分为:基本类型、引用类型函数
本质区别: spa
基本数据类型的变量实际值存储在栈中blog
引用数据类型,据名知意,引用数据类型的实际值存储在堆中,变量值实际存储的是实际值存储在堆中的地址生命周期
见图:ip
综上思考复制🤔内存
基本数据类型与引用数据类型的的复制区别综上显而易见作用域
1 基本数据类型当 var a = 1; var b = a ;的时候 b 获取到的是实际值,因此在内存空间中会新增一个存储你值为1的b的内存空间, 示意图以下变量
2. 引用数据类型当var a = {name: 'lili'}; var b = a;的时候b获取到时存储在变量a中的地址, 因此再内存空间中会新增一个存储着地址的变量b, 而a , b 指向同一个内存堆中,示意图以下垃圾回收
大体了解以后,思考一下全局变量和局部变量的生命周期🤔数据类型
1. 全局变量: 在页面关闭后结束
2. 局部变量: 在执行的做用域块执行完成后结束
综上, 局部变量会在其函数块执行以后自动解除,对于引用类型的局部做用域其引用关系会自动解除
大多数的引用类型的全局变量须要手动解除引用关系