当前位置: 首页 > news >正文

js判断对象是否为空对象的常见的5种方法

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

var data = {};

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

alert(b);//true

2.for in 循环判断

var obj = {};

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

}

alert(b());//true

3.jquery的isEmptyObject方法

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

var data = {};

var b = $.isEmptyObject(data);

alert(b);//true

4.Object.getOwnPropertyNames()方法

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

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

var data = {};

var arr = Object.getOwnPropertyNames(data);

alert(arr.length == 0);//true

5.使用ES6的Object.keys()方法

与4方法类似,是ES6的新方法, 返回值也是对象中属性名组成的数组

var data = {};

var arr = Object.keys(data);

alert(arr.length == 0);//true

相关文章:

  • 五大常用算法之二:动态规划算法
  • 如何判断一个对象是数组还是对象
  • 性能测试相关(TPS/RT/PV等)
  • 文字排版--删除线(text-decoration:line-through)
  • 前端浏览器的兼容性
  • Android Fragment问题汇总
  • Scala中List、Map、Set各类型操作汇总
  • hash模式 和 history模式之间的区别
  • 镜像源的相关知识
  • javascript(四) var关键字/注释/noscript
  • 新手来学TS+Vue吧,我也是搞了好多。第一次执行vscode编译ts可能会报错,有解决办法。
  • Java8新特性 1——利用流和Lambda表达式操作集合
  • VUE2.0 创建项目步骤
  • 用 Swift 编写面向协议的视图
  • 当你vue创建项目创建不成功,报错Failed to get response from htttps://registry.npm.taobao.org/vue-cli-version-m,解决办法
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 订阅Forge Viewer所有的事件
  • 工程优化暨babel升级小记
  • 那些年我们用过的显示性能指标
  • 前端
  • 区块链分支循环
  • 微服务核心架构梳理
  • Linux权限管理(week1_day5)--技术流ken
  • 阿里云ACE认证之理解CDN技术
  • ​flutter 代码混淆
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #android不同版本废弃api,新api。
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (2)STL算法之元素计数
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (转)Mysql的优化设置
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .net Application的目录
  • .NET Core 版本不支持的问题
  • .net Signalr 使用笔记
  • .net 流——流的类型体系简单介绍
  • .NET企业级应用架构设计系列之技术选型
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @JsonFormat与@DateTimeFormat注解的使用
  • @SentinelResource详解
  • []新浪博客如何插入代码(其他博客应该也可以)
  • []指针