1.在介绍他们的区别之前首先先介绍一下Javascript的几种数据类型以及typeof的用法.
javaScript一共有undefined、null、String、Number、Boolean、Object六种类型(Function这里算作Object的一种特殊类型)。前五种类型算是基本数据类型,Object算是引用类型。
typeof的用法就是返回一个变量的类型,但是返回的形式是以字符串的形式,如下:
从上图可以看出typeof返回一共有"undefined"/"number"/"string"/"object"/"function"/"boolean"六种类型。其中有两种比较特殊,就是typeof null 以及 typeof function。null用typeof返回"object"把它当作了对象类型,function返回"function"我们的六种类型里面并没有.在这里至于原因,我不知道,但是用的时候一定要记住这点区别。(有知道原因的麻烦给我留言,谢谢)。
2. 比较一下undefined、null、NaN的类型
从上图可以知道三者的typeof返回值不想等。但是用他们的值直接比较是什么结果呢,看下图:
undefined和null的值比较是相等的。NaN和任何值都不相等。
想了解详细情况,请查看http://www.ruanyifeng.com/blog/2014/03/undefined-vs-null.html