null和undefined的区别
1.定义
- undefined:是所有没有赋值变量的默认值,自动赋值。
- null:主动释放一个变量引用对象,表示一个变量不在指向任何对象地址
2.何时使用null?
- 当时用完一个比较大的对象时,需要对其进行释放内存时,设置为null。
3.null与undefined的异同点是什么?
- 都是原始类型,保存在栈中变量本地。
不同点:
(1)undefined——表示变量声明过但并未赋过值。
- 它是所有未赋值变量默认值,例如:
var a //a自动被赋值为undefined
(2)null--------------------表示一个变量将来可能指向一个对象
一般用于主动释放指向对象的引用
var a=['aa','bb']
a=null;//释放对象数组的引用
4.垃圾回收站
- 它是专门释放对象内存的一个程序
- 在底层,后台伴随当前程序同时进行;引擎会定时自动调用垃圾回收期
- 总有一个对象不再被任何变量引用时,才释放。