null:
①null是一个语言关键字,求值为一个特殊值,通常用于
表示某个值不存在
。
②对null使用typeof操作符
返回字符串"object"
,表明可以将null看成一种特殊对象,表示“没有对象”。
③在实践中, null通常被当作它自己类型的唯一成员,
可以用来表示数值、字符串以及对象“没有值”
。
④多数编程语言都有一个与JavaScript的null等价的值,比如NULL、nil或None。
undefined:
①JavaScript中的undefined也表示值不存在。
②undefined包括:
变量的值未初始化
查询不存在的对象属性或数组元素
没有明确返回值的函数返回的值
没有传值的函数参数的值
③undefined是一个
预定义的全局常量
,这个常量的初始化值就是undefined。
④对undefined应用typeof操作符会
返回"undefined"
,表示这个值是该特殊类型的唯一成员。
关系:
①null和undefined都可以表示某个值不存在。
②相等操作符==认为它们相等(要区分它们,必须使用全等操作符===)。
③因为它们俩都是假性值,在需要布尔值的情况下,它们都可以当作false使用。
④null和undefined都没有属性或方法。
⑤使用 . 或 [] 访问这两个值的属性或方法会导致TypeError。
可以用undefined表示一种系统级别、意料之外或类似错误的没有值。
可以用null表示程序级别、正常或意料之中的没有值。
实际编码中,尽量避免使用null和undefined,如果需要给某个变量或属性赋这样一个值,或者需要向函数传入或从函数中返回这样一个值,通常使用null。也有些程序员则极力避免使用null,而倾向于使用undefined。