当前位置:   article > 正文

理一理JS中undefined和null与false、0、{}、[]之间的关系_nullundefinedfalse"false"boolean(false)[][[]]""str

nullundefinedfalse"false"boolean(false)[][[]]""string("")0number(0)"0"string

首先我们知道JS的数据类型分为基本类型(包含Null、Undefined、String、Boolean、Number)和引用类型Object
需要注意的是:
a.类型都是大写开头,相当于其他语言的类
b.typeof操作符返回的是代表类型的字符串,这里经常会有人搞混,比如typeof 10,返回的是“number”这个字符串,返回的不是数据类型,而是代表数据类型的字符串;
另外,typeof一个数组、一个对象或者null返回的都是“object”
c.那么我们如何去区分到底是数组还是对象呢?根据继承关系,Array继承自Object,那么我们使用instanceof关键词用来检测是不是某个类的实例,那么某个数组肯定是Object的实例,但是某个对象却不是数组的实例,如下图的关系
在这里插入图片描述
d.关于 == 和 === ,== 比较两边隐式转化后可比较的值,但不考虑数据类型, === 除了比较值是否相等之外,还考虑了数据类型,如果数据类型不一样,那===无法成立

有了以上的知识,那么我们开始讨论这标题中几者之间的关系(我们这里不讨论全等的情况,因为全等情况比较容易理解)
1.undefined
如果变量已经声明,但是没有赋值,则此变量返回undefined;
undefined属于Undefined类型;
typeof undefined 返回“undefined”这一字符串;
undefined和其他几个值有如下关系
在这里插入图片描述

2.null
null即为不存在东西,也是一个对象的空指针状态;
null原则上属于Null类型,其实整个Null类型就只有一个成员null;
但是我们用typeof来检测null时候,却返回了“object”,不知道是不是语言设计上的失误
它和其他值的关系
在这里插入图片描述
那么我们现在可以总结一下null和undefined,除了他们两者相等(==)外,其他比较均不成立

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/106716
推荐阅读
相关标签
  

闽ICP备14008679号