null和undefined的区别
1.undefined的理解
undefined为数据初始化的时候,如果你没有进行赋值,那么它的值将会是一个undefined,全局下,预定义一个变量的时候,没有给定当前变量赋值时,它将会是undefined。
简单理解为:此次应该有对象有值但是未定义值
2.null的理解
null表示"没有对象",即该处不应该有值。
null 一个人为进行赋予的值,比如某个引用类型或者函数,你想要进行舍弃,那么你可以把它设置为null。那么浏览器的垃圾回收机制将进行回收。
3,null与undefined的区别
1.数据类型不一样:
console.log(typeof null);
console.log(typeof undefined);
2.强转为数字类型不同
console.log(Number(null));//0
console.log(Number(undefined));//NAN
3.null是原型链的出口
console.log(Object.prototype.__proto__ === null); //true
回收特点
在浏览器垃圾回收中应用:全局执行上下文中对于全局变量(引用变量)的内存回收,对于这些使用过需要释放内存空间的变量,我们把基本变量类型
的变量赋值为undefined
,把引用变量类型
的变量赋值为null
,这样就可以做到垃圾回收;