Null和Undefined都属于JavaScript中的值类型。两种类型有相似之处,以至于我们常常将两者弄混,二者做比较运算"null==undefined"结果为true,而这两个值的用途却各不相同。
关于Null
Null一般用来做对象的占位符使用,应该使用Null的场景:
用来初始化一个可能赋值的对象
用来和一个已经初始化的变量做比较,这个变量可以是也可以不是一个对象
函数参数希望值是对象,做为参数传入
函数返回希望值是对象,做为返回值传出
以下场景中不应该使用Null:
检测某个参数是否传入时
检测未初始化的变量时
关于Undefined
Undefined与Null不同。没有初始化的变量都有一个初始值,即undefined。在代码中应该尽量避免使用Undefined,这个值常常和typeof运算符返回的'undefined'混淆。不管是未初始化的变量还是未定义的变量,typeof都会返回'undefined',而对null做typeof操作时,其返回值为'object'。
示例如下: