javascript中的undefined,null,NaN,false区别

false

var a = false; console.log("a的数据类型为"+ typeof(a));

输出结果为

a的数据类型为boolean

这个很好理解,true和false为布尔值。

undefined

var b; console.log("b的数据类型为"+ typeof(b));

输出结果为

b的数据类型为undefined

所以undefined的意思就是未被赋值,声明了一个变量却没赋值时会返回undefined

NaN

var c = NaN; console.log("c的数据类型为"+ typeof(c));

c的数据类型为number

但是NaN为什么会是number呢?

看看MDN的介绍

NaN 是一个全局对象的属性。

NaN 属性的初始值就是 NaN,和 Number.NaN 的值一样。在现代浏览器中(ES5中), NaN 属性是一个不可配置(non-configurable),不可写(non-writable)的属性。但在ES3中,这个属性的值是可以被更改的,但是也应该避免覆盖。

在编码很少直接使用到 NaN。通常都是在计算失败时,作为 Math 的某个方法的返回值出现的(例如:Math.sqrt(-1))或者尝试将一个字符串解析成数字但失败了的时候(例如:parseInt("blabla"))。

可以看出来对-1开平方会返回NaN.再看一个例子
NaN === NaN; //false
NaN不等于任何值,连它本身也不等于。我们可以利用这一点去获取数组中的NaN
return arr !== arr;

null

var e = null; console.log("e的数据类型为"+ typeof(e));

e的数据类型为object

MDN上这样介绍null.

值null是一个javascript字面量,表示空值,既没有对象被呈现。它是javascript原始值之一。

null和undefined的区别:

typeof null // object typeof undefined // undefined null === undefined // false null == undefined // true (==会强制转换类型)
附上如何判断null

JS中如何判断null

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前端07班 王语句JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是...
    ea203453e188阅读 4,429评论 0 4
  • 文章配套视频 https://study.163.com/course/introduction/10059730...
    撩课_叶建华阅读 10,355评论 7 25
  • 变量 声明变量 命名变量区分大小写的语言第一个字符是字母或下划线_,数字不能作为第一个字符字符必须是字母,数字或者...
    flyingtoparis阅读 4,229评论 0 0
  • 语句 JavaScript程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。 ...
    米塔塔阅读 3,287评论 1 10
  • zy0ep3----t15037
    unravellll阅读 1,544评论 1 0

友情链接更多精彩内容