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

张掖网站建设网站排行榜

张掖网站建设,网站排行榜,安康养老院收费,公司网站备案怎么弄文章目录 一、前言二、JSON.stringify三、for in 配合 hasOwnProperty四、Object.keys五、Object.getOwnPropertyNames六、Object.getOwnPropertyNames 结合 Object.getOwnPropertySymbols七、Reflect.ownKeys八、最后 一、前言 如何判断一个对象为空#xff1f; 先上结论JSON.stringify三、for in 配合 hasOwnProperty四、Object.keys五、Object.getOwnPropertyNames六、Object.getOwnPropertyNames 结合 Object.getOwnPropertySymbols七、Reflect.ownKeys八、最后 一、前言 如何判断一个对象为空 先上结论判断一个对象是否为空时使用 Reflect.ownKeys 方法最为完美。 今天我们来聊聊几种经常使用的方法以及在不同的场景下我们如何去使用。 二、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三、for in 配合 hasOwnProperty 使用 for in 对当前对象进行遍历 const obj {} Object.prototype.a 1function isEmptyObj(obj) {let flag truefor (let o in obj) {flag falsebreak}return flag }console.log(isEmptyObj(obj)) // false由于 for in 在进行对象遍历时会遍历对象原型上的属性而我们只希望得到其自身的属性这时可以使用 hasOwnProperty 来实现如下 const obj {} Object.prototype.a 1function isEmptyObj(obj) {let flag truefor (let o in obj) {if (obj.hasOwnProperty(o)) {flag falsebreak}}return flag }console.log(isEmptyObj(obj)) // true缺点for in 不能遍历不可枚举的属性。 四、Object.keys Object.keys 会返回对象自身可枚举属性组成的数组而不会遍历原型上的属性。 const obj {} Object.prototype.a 1console.log(Object.keys(obj).length 0) // true缺点Object.keys 和 for in 都只能遍历可枚举属性不能遍历不可枚举的属性。 我们使用 Object.defineProperty 将属性 enumerable 设置为 false 来进行测试示例如下 const obj {} Object.defineProperty(obj, a, {value: 1,enumerable: false })console.log(obj.a) // 1 console.log(isEmptyObj(obj)) // true console.log(Object.keys(obj).length 0) // true五、Object.getOwnPropertyNames 使用 Object.getOwnPropertyNames 可以得到对象自身的所有属性名组成的数组(包括不可枚举属性)。 const obj {} Object.defineProperty(obj, a, {value: 1,enumerable: false })console.log(Object.getOwnPropertyNames(obj)) // [ a ]缺点不能获取 Symbol 值作为名称的属性以上的 JSON.stringify、for in 以及 Object.keys 方法也不能获取Symbol 值作为名称的属性示例如下 const a Symbol() const obj {[a]: 1 }console.log(obj) // { [Symbol()]: 1 } console.log(Object.getOwnPropertyNames(obj).length 0) // true console.log(JSON.stringify(obj) {}) // true console.log(isEmptyObj(obj)) // true console.log(Object.keys(obj).length 0) // true六、Object.getOwnPropertyNames 结合 Object.getOwnPropertySymbols 已知 Object.getOwnPropertyNames 唯一的缺点是不能获取 Symbol 值作为名称的属性而 Object.getOwnPropertySymbols 只能获取由 Symbol 值作为名称的属性两者相结合是不是就可以完美解决了。我们来简单测试一下 const a Symbol() const obj1 {[a]: 1 } const obj2 {b: 2} const obj3 {} Object.defineProperty(obj3, a, {value: 1,enumerable: false }) const obj4 {}function getLength(obj) {return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj)).length }console.log(getLength(obj1) 0) // false console.log(getLength(obj2) 0) // false console.log(getLength(obj3) 0) // false console.log(getLength(obj4) 0) // true经过测试上面这种方法的确可以解决但是比较繁琐那有没有更好的方法呢答案是有的。 七、Reflect.ownKeys Reflect.ownKeys 方法返回一个由目标对象自身的属性组成的数组它的返回值等同于 Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target))示例如下 const a Symbol() const obj1 {[a]: 1 } const obj2 {b: 2} const obj3 {} Object.defineProperty(obj3, a, {value: 1,enumerable: false }) const obj4 {}console.log(Reflect.ownKeys(obj1).length 0) // false console.log(Reflect.ownKeys(obj2).length 0) // false console.log(Reflect.ownKeys(obj3).length 0) // false console.log(Reflect.ownKeys(obj4).length 0) // true八、最后 本人每篇文章都是一字一句码出来希望对大家有所帮助多提提意见。顺手来个三连击点赞收藏关注✨。一起加油☕
http://www.pierceye.com/news/681328/

相关文章:

  • 专注七星彩网站开发出租云服务器上建网站
  • 天津做网站.都找津坤科技中国菲律宾历史战绩
  • 网站建设合同的效力网站建设公司需要交税么
  • 色弱可以做网站开发吗建网站的步骤及方法
  • 卖衣服的网站排名discuz分类信息模板
  • 广西网站开发公司招聘网页制作软件
  • 网站框架一般用什么做dede搭建网站教程
  • 郑州网站开发比较好的网络公司网络推广公司有多少家
  • 银川做网站服务免费word模板
  • 个人网站备案方法网站开发制作云盘
  • 培训做网站传奇手游发布网站
  • 中国保密在线网站培训系统手机购物平台
  • 厦门网站制作建设沐风 wordpress 主题
  • 网站选择城市怎么做北京招聘信息
  • 一个做搞笑类视频的网站取名手机端企业网站源码
  • 房地产网站模板网站建设论文范文
  • 任丘网站制作公司pc网站制作公司
  • 惠州城乡规划建设局网站工程公司经营范围
  • 淮南服装网站建设地址巴彦淖尔网站建设公司
  • 如何让自己的网站被百度收录wordpress 悬浮网易云
  • 天津展示型网站建设外包腾讯云wordpress镜像
  • python做网站点登入没反映wordpress母公司
  • 中国建设培训网站查询系统地产项目网站建设ppt
  • 温州高端网站建设网站开发实验心得
  • 设计参考网站有哪些陕西省西安市事业单位招聘网
  • 月编程做网站wordpress需要调用缩略图
  • 做一份网站动态图多少钱网站托管服务公司
  • 宣传式网站营销型网站套餐
  • 建设网站如何优化关键词江门排名优化公司
  • 做教学的视频网站wordpress小工具推荐