首先 Undefined
和 Null
都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 undefined
和 null
。
undefined
代表的含义是未定义,null
代表的含义是空对象。
一般变量声明了但还没有定义的时候会返回 undefined
,
null
主要用于赋值给一些可能会返回对象的变量,作为初始化。
undefined
在 js 中不是一个保留字,这意味着我们可以使用 undefined
来作为一个变量名,这样的做法是非常危险的,它会影响我们对 undefined
值的判断。但是我们可以通过一些方法获得安全的 undefined
值,比如说 void 0
。
当我们对两种类型使用 typeof
进行判断的时候,Null
类型化会返回 “object
”,这是一个历史遗留的问题。当我们使用双等号对两种类型的值进行比较时会返回 true
,使用三个等号时会返回 false
。
如何获取安全的 undefined 值?
因为 undefined
是一个标识符,所以可以被当作变量来使用和赋值,但是这样会影响 undefined
的正常判断。
表达式 void ___
没有返回值,因此返回结果是 undefined
。void
并不改变表达式的结果,只是让表达式不返回值。
按惯例我们用 void 0
来获得 undefined
。
资料参考: