NAN

表示本来要返回数值的操作失败了(而不是抛出错误)

undefined:

意义: 数据是否存在
表示未定位不存在。
ecma的解释:
image.png
翻译成中文:
没有为变量赋值时使用的原始值

null :

意义:null是对象中的一个空值,表示未引用任何引用值
表示空,不存在
mdn的解释:
image.png
ecma的解释
image.png
翻译成中文:
表示有意不存在任何对象的原始值

两者的区别

undefined与null的区别在于定义上。假设去图书馆占位看书,当这个位置没有人做时这个值就可以用undefined,当这个位置没人做但是桌上放了东西,人家说不定去上厕所啦,这个值可以用null

两者之间的恩仇

  1. null == undefined // true
  2. null === undefined // false
  3. null == null //true
  4. null === null // false

null == undefined

== 是比较规则是比对两个指针指向的值是否一样,null与undefined都是空 故相等

null === undefined

=== 这是严格比较, 不仅比较两个指针指向的值,也比对两个值的储存空间是否一样,故不相等

null === null

待续