各种遍历方法以及注意点

简介: 各种遍历方法以及注意点

参考 : https://es6.ruanyifeng.com/#docs/object

可枚举性
对象的每个属性都有一个描述对象(Descriptor),用来控制该属性的行为。Object.getOwnPropertyDescriptor方法可以获取该属性的描述对象。

let obj = {
    foo: 123 };
Object.getOwnPropertyDescriptor(obj, 'foo')
//  {
   
//    value: 123,
//    writable: true,
//    enumerable: true,
//    configurable: true
//  }

描述对象的enumerable属性,称为“可枚举性”,如果该属性为false,就表示某些操作会忽略当前属性。

目前,有四个操作会忽略enumerable为false的属性。

for...in循环:只遍历对象自身的和继承的可枚举的属性。
Object.keys():返回对象自身的所有可枚举的属性的键名。
JSON.stringify():只串行化对象自身的可枚举的属性。
Object.assign(): 忽略enumerable为false的属性,只拷贝对象自身的可枚举的属性。

//这四个操作之中,前三个是 ES5 就有的,最后一个Object.assign()是 ES6 新增

总的来说,操作中引入继承的属性会让问题复杂化,大多数时候,我们只关心对象自身的属性。所以,尽量不要用for...in循环,而用Object.keys()代替。
相关文章
|
消息中间件 存储 缓存
3分钟白话RocketMQ系列—— 如何消费消息
3分钟白话RocketMQ系列—— 如何消费消息
1529 0
|
Web App开发 编解码 Ubuntu
YouTube下载视频教程:常用的网站软件插件APP都有涉及
有时候可能需要YouTube上的视频来进行一些操作,比如教程演示,语言学习,视频编辑等.....那么YouTube视频怎么下载下来呢?方法比较多。在这篇文章里我会给大家介绍一些下载YouTube视频的常用网站、浏览器插件、电脑软件和手机APP,方便大家找到最合适的方法去保存油管视频。
3568 1
YouTube下载视频教程:常用的网站软件插件APP都有涉及
|
Python Windows Linux
配置国内PIP源方法
python开发者都知道,当我们pip install安装扩展库的时候,经常遇到安装失败(超时)等,有时候是因为国外镜像被屏蔽了,带来不少麻烦, 随着国内python开发的增多,越来越多企业都开放了自己的pip源: #阿里云 http://mirrors.
11433 1
|
人工智能 云计算
南京大学与阿里云签署校企合作协议,以“云工开物”支持人工智能人才培养与科研创新
3月28日,南京大学与阿里云签署全面校企合作协议,共同推动科教融汇与产教融合。双方将启动人工智能人才培养计划,基于阿里云技术优势和南大学科实力,设计通识课程与实践课程,支持“1+X+Y”课程体系建设。阿里云将为南大师生提供免费算力资源,助力教学科研,并通过产学研合作培养新工科拔尖创新人才,推动科技成果转化与高水平自立自强。
|
8月前
|
负载均衡 Java 应用服务中间件
杂项10
Spring Cloud Alibaba 与 Spring Cloud 均基于 Spring Boot 构建微服务,遵循相同规范且组件可协同使用。区别在于,Spring Cloud Alibaba 使用 Nacos 实现服务发现与配置管理,推荐 Sentinel 作为断路器,并支持 Dubbo 与 Feign 远程调用。Nginx 可通过配置 upstream 实现负载均衡,作为反向代理,其“反向”体现在外网通过 Nginx 访问内部服务器。
|
网络协议 应用服务中间件 网络安全
阿里云轻量应用服务器的使用限制
阿里云轻量应用服务器的使用限制
|
消息中间件 监控 物联网
物联网8大协议介绍及对比
根据具体的应用需求,选择合适的协议可以大幅提升系统的性能和可靠性。希望本文能为您在物联网协议的选择和应用中提供有价值的参考。
5168 0
|
存储 Windows
解决在Mac上离线存储Disney Plus等流媒体内容
本文关于Disney+ 的下载功能,首先全面了解下载限制。最后解释如何解决在Mac上离线存储Disney Plus等流媒体内容。
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能】关键的人工智能领域专业术语及其简要解释
人工智能(Artificial Intelligence, AI)领域涉及众多专业术语,这些术语涵盖了从基础理论到具体应用的各个方面。以下是一些关键的人工智能领域专业术语及其简要解释
1157 2
|
设计模式 架构师 Java
为掌握Java设计模式奠基:两步搞懂UML类图
为掌握Java设计模式奠基:两步搞懂UML类图
为掌握Java设计模式奠基:两步搞懂UML类图