当前位置:首页 > 服务端 > JS如何判断空对象,及typeof和instanceof的区别

JS如何判断空对象,及typeof和instanceof的区别

一、ECMAScript中有5种基本数据类型,分别为Undefined,Null,Boolean,Number,String。另外还有一种复杂数据类型Object,Object本质上是由一组无序的名值对组成的。创建Object实例有两种方法,第一种是使用new操作符后跟Object构造函数,如下代码所示:

var student=new Object();
student.name="zhou";
student.age="24";

另外一种是使用对象字面量表示法,它是定义对象的一种简单表示方法,在于简化创建包含大量属性的对象的过程。如下代码所含:

var student={
    name:"zhou",
    age:"24",
};

简单的了解一下对象,关于JS如何判断一个对象是否为空,它不能像java这样的高级语言直接利用等值判断(==null)来判断,由于Object实质上是一种无序的名值对即字典,所以可以通过检测对象中是否有key值来判断对象是否为空。在Jquery中的一种方法是利用isEmptyObject()这个函数自定义实现,利用for…in…迭代实现,代码如下所示:使用这个函数的代码为:$.isEmptyObject(obj);

function isEmptyObject(obj){
     
    for(var key in obj)
    {
        return false;
    } 
    return true; 
}

当然对于原生的JS也可以通过这种方式实现,通过使用isEmptyObject(obj)。
二、typeof用于检测运算符的类型,它的返回值有以下几种情况:number,string,boolean,function,object,undefined,可以检测某个变量是否存在,如if(typeof(a)==”undefined”);而对于的特殊的Array和Null,typeof仍返回的是Object。
instanceof用于判断某个变量是否属于某个对象的实例,例如以下代码:

var a={};
console.log(a instanceof Object);//true

前面已经讲到typeof遇到null,Array都会返回object,可以使用instaceof判断一个变量是否属于数组对象,如var a=new Array(),console.log(a instanceof Array);//true

作者:yihuoZhou
来源链接:https://blog.csdn.net/qq_21794603/article/details/58674127


版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/95948.html

分享给朋友: