您的位置:首页 > 科技 > 能源 > 深圳网络推广哪家_免费网站2021年能用的网址_教育培训网站设计_兰州seo网站建设

深圳网络推广哪家_免费网站2021年能用的网址_教育培训网站设计_兰州seo网站建设

2025/2/27 22:01:44 来源:https://blog.csdn.net/qq_45532769/article/details/144960076  浏览:    关键词:深圳网络推广哪家_免费网站2021年能用的网址_教育培训网站设计_兰州seo网站建设
深圳网络推广哪家_免费网站2021年能用的网址_教育培训网站设计_兰州seo网站建设

提示:记录工作中遇到的需求及解决办法

文章目录

  • 前言
  • 1. JSON.stringify
  • 2. for in 配合 hasOwnProperty
  • 3. Object.keys
  • 4. Object.getOwnPropertyNames
  • 5. Object.getOwnPropertyNames 结合 Object.getOwnPropertySymbols
  • 6. Reflect.ownKeys
  • 总结


前言

如何判断一个对象为空是我们在开发中经常会遇到的问题,今天我们来聊聊几种经常使用的方法,以及在不同的场景下我们如何去使用。


提示:以下是本篇文章正文内容,下面案例可供参考

1. JSON.stringify

JSON.stringify 方法可以使对象序列化,转为相应的 JSON 格式。

const obj = {};
console.log(JSON.stringify(obj) === '{}')  // true

缺点:如果存在 undefined任意的函数 以及 symbol 值,在序列化过程中会被忽略(出现在非数组对象的属性值中时)或者被转换成 null(出现在数组中时)。

更多如下示例:

const obj = {  a: undefined,  b: function() {},  c: Symbol()
}
console.log(JSON.stringify(obj) === '{}')  // true

2. for in 配合 hasOwnProperty

使用 for in 对当前对象进行遍历:

const obj = {}
Object.prototype.a = 1
function isEmptyObj(obj) {  let flag = true  for (let o in obj) {    flag = false    break  }  return flag
}
console.log(isEmptyObj(obj))  // false

由于 for in 在进行对象遍历时,会遍历对象原型上的属性,而我们只希望得到其自身的属性,这时可以使用 hasOwnProperty 来实现,
如下:

const obj 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com