JS判断对象是否为空,javascript判断空对象

  JS判断对象是否为空,javascript判断空对象

  本文主要介绍在原生javascript中检查对象是否为空的示例实现。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  

目录

  什么是原生JavaScript?在新的浏览器中检查空对象以解决误报。b .在旧浏览器中使用JavaScript检查空对象来检查空对象。其他类型的构造函数也可以正常判断使用外部库检查空对象。本机VS库下面的代码片段用于检查对象是否为空。对于较新的浏览器,可以使用ES6的“Object.keys”。对于较老的浏览器,可以安装Lodash库并使用它的“isEmpty”方法。

  const empty={ };

  /* -

  新浏览器

  - */

  Object.keys(空)。长度===0 empty.constructor===Object

  //真

  /* -

  旧版浏览器可以使用Lodash。

  - */

  _.isEmpty(空)

  //真

  

什么是原生 JavaScript

  原生JavaScript指的是不使用框架或库。只是普通的JavaScript,不使用Lodash或者jQuery之类的库。

  

A.在较新的浏览器中检查空对象

  我们可以使用内置的Object.keys方法来检查空对象。

  const empty={ };

  Object.keys(空)。length===0 empty . constructor===object;

  为什么我们需要额外的构造函数检查?

  你可能想知道为什么我们需要检查构造函数。它旨在重写包装实例。在JavaScript中,我们有9个内置的构造函数。

  新对象();

  new String();

  新号码();

  new布尔值();

  new Array();

  new RegExp();

  new函数();

  新日期();

  这里,我们可以使用new Object()创建一个空对象。

  const obj=new Object();

  Object.keys(obj)。长度===0;//真

  因此,只使用Object.keys,当对象为空时,它确实返回true。但是,当我们使用其他构造函数创建一个新的对象实例时,会发生什么呢?

  函数badEmptyCheck(值){

  返回Object.keys(值)。长度===0;

  }

  badEmptyCheck(new String());//真

  badEmptyCheck(new Number());//真

  badEmptyCheck(new Boolean());//真

  badEmptyCheck(new Array());//真

  badEmptyCheck(new RegExp());//真

  badEmptyCheck(new Function());//真

  badEmptyCheck(new Date());//真

  

通过检查 constructor 解决误报

  通过添加构造函数检查来更正此错误。

  函数goodEmptyCheck(值){

  Object.keys(值)。长度===0

  value.constructor===Object//构造函数检查

  }

  goodEmptyCheck(new String());//假

  goodEmptyCheck(new Number());//假

  goodEmptyCheck(new Boolean());//假

  goodEmptyCheck(new Array());//假

  goodEmptyCheck(new RegExp());//假

  goodEmptyCheck(new Function());//假

  goodEmptyCheck(new Date());//假

  

对其他值进行空检查

  然后,我们用一些值测试我们的方法,看看我们会得到什么。

  函数是空对象(值){

  返回Object.keys(值)。长度===0 value . constructor===Object;

  }

  到目前为止看起来不错,对于非对象返回false。

  isEmptyObject(100) //false

  isEmptyObject(true) //false

  isEmptyObject([]) //false

  但是要小心!下列值将引发错误。

  //TypeError:无法将未定义或null转换为对象

  isEmptyObject(未定义);

  isEmptyObject(null);

  改进的空值和未定义的空值检查

  如果不希望它抛出TypeError,可以添加额外的检查。

  函数是空对象(值){

  返回值Object.keys(value)。长度===0 value . constructor===Object;

  }

  

B.旧版本浏览器中的空对象检查

  如果你需要支持旧的浏览器怎么办?众所周知,当我们说老浏览器时,我们指的是IE。我们有两个选择,使用本地或利用库。

  

使用 JavaScript 检查空对象

  原来的JS没有那么简洁,但是判断是否用于空对象是没有问题的。

  函数isObjectEmpty(值){

  返回(

  Object . prototype . tostring . call(value)===[Object Object] JSON . stringify(value)=== { }

  );

  }

  对于对象,它返回true。

  isObjectEmpty({ });//真

  isObjectEmpty(new Object());//真

  

其它类型的构造函数也能正常判断

  isObjectEmpty(新字符串());//假

  isObjectEmpty(new Number());//假

  isObjectEmpty(new Boolean());//假

  isObjectEmpty(new Array());//假

  isObjectEmpty(new RegExp());//假

  isObjectEmpty(新函数());//假

  isObjectEmpty(new Date());//假

  传入null和undefined不会报告TypeError。

  isObjectEmpty(null);//假

  isObjectEmpty(未定义);//假

  

使用外部库检查空对象

  有很多外部库可以用来检查空对象。而且大部分对老浏览器都有很好的支持。

  洛达什

  _.isEmpty({ });

  //真

  强调

  _.isEmpty({ });

  //真

  框架

  jquery . isemptyobject({ });

  //真

  

原生 VS 库

  答案要看情况!我喜欢尽可能简化程序,因为我不喜欢外部库的开销。另外,对于较小的应用,我也懒得设置外部库。

  但是如果你的应用程序已经安装了一个外部库,那么继续使用它。你会比任何人都了解你的应用。所以选择最适合你情况的方法。

  以上是在原生javascript中检查对象是否为空的示例实现的细节。关于在javascript中检查对象是否为空的更多信息,请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • js判断数组四种实现方法详解图,js判断数组四种实现方法详解图片
  • js判断数组四种实现方法详解图,js判断数组四种实现方法详解图片,JS判断数组四种实现方法详解
  • js判断换行符,js 字符串为空
  • js判断字符串是否包含另一个字符串,判断字符串是否包含某个字符串 js
  • js判断字符串是否包含另一个字符串,判断字符串是否包含某个字符串 js,JS中判断某个字符串是否包含另一个字符串的五种方法
  • js判断字符串只有英文和数字,js判断字符串包含字母
  • js判断字符串只有英文和数字,js判断字符串包含字母,JS判断字符串长度的5个方法(区分中文和英文)
  • js 判断是否为空对象,js中如何判断一个对象是否为空对象,JS判断对象是否为空对象的几种实用方法汇总
  • js 判断数据类型的几种方法是什么,JS判断数据类型的方法有哪些
  • js 判断数据类型的几种方法是什么,JS判断数据类型的方法有哪些,js 判断数据类型的几种方法
  • js判断ie版本,判断ie浏览器版本
  • js开始日期不能大于结束日期,js判断时间是否大于指定时间
  • 判断数组和对象,js判断一个对象是否为数组
  • js判断字符串是否是json格式,java判断是否是字符串
  • 判断对象是否为数组,js判断一个对象是否是数组
  • 留言与评论(共有 条评论)
       
    验证码: