一个变量定义了却没有赋值,这就是undefined
null的意思是定义并且值为空

但是undefined和null之前有什么区别呢?
undefined实际上不是一个关键字而是一个变量(这也是javascript语言设计的缺陷)
我们通常可以通过var a = null来定义一个空变量
但是几乎不会用var a = undefined来定义一个类型为undefined的变量
因为是undefined不是关键字,undefined是全局window下的一个属性,但是在局部作用于中undefined可能会被赋值成别的值(undefined在全局环境没法被赋值,在局部环境是可以被赋值)
而null不同,null是javascript的关键字,你可以在任何js代码中放心得赋值为null

那怎么去解决这个问题呢
通常使用 void 0 来代替undefined 来表示类型为undefined(因为无论如何 void返回的类型都为undefined)

Last modification:August 27, 2019
If you think my article is useful to you, please feel free to appreciate