JavaScript typeof, null, 和 undefined
typeof 操作符
可以使用 typeof 操作符来检测变量的数据类型。
在JavaScript中,数组是一种特殊的对象类型。 因此 typeof [1,2,3,4] 返回 object。
null
在 JavaScript 中 null 表示 "什么都没有"。
null是一个只有一个值的特殊类型。表示一个空对象引用。
用 typeof 检测 null 返回是object。
可以设置为 null 来清空对象
undefined
在 JavaScript 中, undefined 是一个没有设置值的变量。
typeof 一个没有值的变量会返回 undefined。
null 与 undefined 的区别
共同点:都是原始类型,保存在栈中变量本地。
不同点:
(1)undefined——表示变量声明过但并未赋过值。
它是所有未赋值变量默认值
var a; // a 自动被赋值为 undefined
(2)null——表示一个变量将来可能指向一个对象。
一般用于主动释放指向对象的引用
var emps = ['ss','nn'];
emps = null; // 释放指向数组的引用
垃圾回收站
它是专门释放对象内存的一个程序。
- (1)在底层,后台伴随当前程序同时运行;引擎会定时自动调用垃圾回收期;
- (2)总有一个对象不再被任何变量引用时,才释放
-
垃圾积攒过多,会导致程序运行过慢所以我们需要一个垃圾回收机制,来处理程序运行过程中产生的垃圾当一个对象没有任何的变量或属性对它进行引用,此时我们将永远无法操作该对象此时这种对象就是一个垃圾,这种对象过多会占用大量的内存空间,会导致程序运行变慢-在js中有自动的垃圾回收机制,将这些垃圾对象从内存中销毁我们不需要也不能进行垃圾回收操作我们需要做的是把不用的对象设置为null。