在js中判断对象是否为空,是十分常见的操作,那么在ES6中有哪些写法呢?

ES6 Object.keys()

Object.keys()是ES6中的新方法, 返回值也是对象中属性名组成的数组,包括对象自身的(不含继承的)所有可枚举属性(不含 Symbol 属性)的键名。

Object.keys(obj).length === 0 && obj.constructor === Object  // true表示为空对象,false为非空对象

缺点: 部分浏览器不支持,需要通过 babel 类插件转为 ES5。使用范例如下:

var data = {};var arr = Object.keys(data);alert(arr.length == 0);//true 即为空对象var datas={a:1,b:2};var aRR = Object.keys(datas);console.log(aRR) -->   ['a','b']

将 json 对象转化为 json 字符串,再判断该字符串是否为"{}"

var data = {};
var b = (JSON.stringify(data) == "{}");
alert(b);//true

for in 循环判断

var obj = {};
var b = function() {for(var key in obj) {return false;}return true;
}
alert(b());//true

jquery isEmptyObject()

此方法是jquery将方法3 (for in)进行封装,使用时需要依赖jquery。

var data = {};
var b = $.isEmptyObject(data);
alert(b);//true

Object.getOwnPropertyNames()

此方法是使用Object对象的getOwnPropertyNames方法,获取到对象中的属性名,存到一个数组中,返回数组对象,我们可以通过判断数组的length来判断此对象是否为空。

注意:此方法不兼容ie8,其余浏览器没有测试。

var data = {};
var arr = Object.getOwnPropertyNames(data);
alert(arr.length == 0);//true

ES6 判断是否为空对象相关推荐

  1. 判断一个对象为空对象的几种方法

    经典面试题,研发时也经常遇见的一个问题:如何判断一个对象是空对象? 方法一:将对象转换成字符串,再判断是否等于"{}" let obj={}; console.log(JSON.s ...

  2. 判断一个对象为空对象的五种方法

    经典面试题,研发时也经常遇见的一个问题:如何判断一个是空对象 方法一:将对象转换成字符串,再判断是否等于"{}" let obj = {}; console.log(JSON.st ...

  3. JavaScript判断是否为空对象的几种方法

    点击打开视频讲解 <template><div id="app"><h2>JavaScript判断是否为空对象的几种方法</h2>& ...

  4. js 判断是否为空对象、空数组

    当需要判断参数是否为空时,总希望 js 能够提供原生的判断方法,可惜并没有,只能自己封装了. 1 function isEmpty(obj) { 1 // 检验 undefined 和 null 1 ...

  5. js 判断是否为空对象,或者空数组

    以下例子考虑这个变量为undefine和null的情况. 空对象: if(obj && Object.keys(obj).length>0){ console.log('空对象' ...

  6. js判断是否为空对象

    JSON.stringify(obj)!='{}'

  7. JavaScript判断对象是否为空对象的几种方法

    判断是否为空对象在实际开发中很常见,今天就让我们来整理一下有哪些方法吧. 1.空对象对应的字符串为 "{}" var data = {}; var b = JSON.stringi ...

  8. 判断数组或者对象是否为空对象

    let arr = []; if (arr.length == 0){console.log("数组为空") }else {console.log("数组不为空" ...

  9. 判断对象是否是空对象

    Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组.通过数组中属性的个数判断是否为空对象. const empty = {};Object.keys(empty).le ...

最新文章

  1. IDE set arguments
  2. 微信小程序横向图片左右滑动
  3. Altium designer不显示飞线的三种方法
  4. leetcode -day23 Construct Binary Tree from Inorder and Postorder Traversal Construct Binary Tree f
  5. HDU 1232 - 畅通工程
  6. springmvc +bootstrap创建简单web项目
  7. 如何通俗理解beta分布?
  8. asp.net C# 直接读取或访问其它网站的URL示例
  9. 恢复快速启动栏里的“显示桌面”图标
  10. 在Eclipse上用JAVA连接数据库
  11. 树莓派基础实验13:雨滴探测传感器实验
  12. 三菱plc pwm指令_【三菱PLC指令教程】定时器指令应用之时序图编程法(一)
  13. 阿里云国际版云计算应用在企业领域的优势有哪些
  14. java寻宝算法_【Java 7】今天,你寻宝了吗?
  15. 电流反馈和电压反馈的判断
  16. 【数位板常见问题】压感笔为什么没有压感了
  17. 机器人需要Matlab嘛,用MATLAB玩转机器人
  18. 百度LBS服务我们自己上传数据,我们客户端获取数据然后进行小黄车和膜拜单车定位描点等骚操作
  19. 电影《翻滚吧阿信》中的管理知识
  20. 应广单片机 PMS150G、FPC161 基础例子【GPIO设置】

热门文章

  1. 高糊图片可以做什么?
  2. 员工拒绝加班,被判赔公司1.8万!网友炸锅
  3. 浪潮、寒武纪联手,目标:新基建智算中心
  4. 为什么工厂模式可以解耦?(一)
  5. tornado源码分析
  6. Django博客系统(登录)
  7. 时间换算_只愿与一人十指紧扣_新浪博客
  8. gluoncv 训练自己的数据集,进行目标检测
  9. C与指针课后答案与编程练习(第一章)
  10. SDCC 2016 中国软件开发者大会盛大开幕