js对象中什么是可枚举性(enumerable)?[通俗易懂]

js对象中什么是可枚举性(enumerable)?[通俗易懂]概念可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for…in循环之中。具体来说,如果一个属性的enumerable为false,下面三个操作不会取到该属性。*for..in循环*Object.keys方法*JSON.stringify方法varo={a:1,b:2};o.c=3;Object.definePropert

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

概念

可枚举性(enumerable)用来控制所描述的属性,是否将被包括在for…in循环之中。具体来说,如果一个属性的enumerable为false,下面三个操作不会取到该属性。
* for..in循环
* Object.keys方法
* JSON.stringify方法

var o = {a:1, b:2};o.c = 3;Object.defineProperty(o, 'd', {  value: 4,  enumerable: false});o.d// 4for( var key in o ) console.log( o[key] ); // 1// 2// 3Object.keys(o)  // ["a", "b", "c"]JSON.stringify(o // => "{a:1,b:2,c:3}"var ab = Object.getOwnPropertyNames(o);          console.log(ab)            // (4) ["a", "b", "c", "d"]            // 0            // :            // "a"            // 1            // :            // "b"            // 2            // :            // "c"            // 3            // :            // "d"            // length            // :            // 4            // __proto__            // :            // Array(0)上面代码中,d属性的enumerable为false,所以一般的遍历操作都无法获取该属性,使得它有点像“秘密”属性,但还是可以直接获取它的值。至于for...in循环和Object.keys方法的区别,在于前者包括对象继承自原型对象的属性,而后者只包括对象本身的属性。如果需要获取对象自身的所有属性,不管enumerable的值,可以使用Object.getOwnPropertyNames方法

Jetbrains全家桶1年46,售后保障稳定


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/222919.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 二维数组赋值 java_java二维数组的赋值方法「建议收藏」

    二维数组赋值 java_java二维数组的赋值方法「建议收藏」在java数组中,我们想要知道其长度,可以通过赋值的方法来实现。在正式开始对数组赋值前,我们要明确其中的下标问题。在准备步骤上,先找到高维的位置,再确定低纬的下标,就可以进行相关的赋值操作了。下面就具体的二维数组赋值,我们先简单分析赋值的概念,然后带来具体的赋值实例。1.赋值概念使用双下标访问二维数组中的元素:第一个下标代表:行号(高维下标)。第二个下标代表:列号(低维下标)。2.赋值实例(1)赋…

  • pycharm不会自动补全括号_pycharm代码提示

    pycharm不会自动补全括号_pycharm代码提示安装pycharm后,输入代码后,没有补全提示首先检查是否关闭了代码提示,如下图,将红框中“PowerSaveMode”前的勾去掉第二步,如果在输入某些代码时还是没有补全提醒,可能是配置好python环境则点击file->settings->projectInterpreter,如下图选择安装的python输入代码就会有提示了…

  • 常用Python库_编程代码大全

    常用Python库_编程代码大全环境管理管理Python版本和环境的工具p–非常简单的交互式python版本管理工具。pyenv–简单的Python版本管理工具。Vex–可以在虚拟环境中执行命令。virtualenv–创建独立Python环境的工具。virtualenvwrapper-virtualenv的一组扩展。包管理管理包和依赖的工具。pip–Python包和依赖关系管理工具。pi…

  • es6 模板字符串_es6 方法模板渲染

    es6 模板字符串_es6 方法模板渲染前言ES6(ES2015)为JavaScript引入了许多新特性,其中与字符串处理相关的一个新特性——模板字面量,提供了多行字符串、字符串模板的功能,相信很多人已经在使用了。字符串模板的基本使用很简单,今天就带大家来了解了解模板字符串。一、基本使用1、传统字符串传统做法需要使用大量的“”(双引号)和+来拼接才能得到我们需要的模版。但是这样是十分不方便的。并且存下一下几点缺陷:1)传统的字符串拼接不能正常换行2)传统的字符串拼接不能友好的插入变量3)传统的字符串拼接不能友好的处理单引号、双引

  • php serialize讲解与json性能测试

    php serialize讲解与json性能测试

  • ICEM对装配体进行网格划分实例「建议收藏」

    ICEM对装配体进行网格划分实例「建议收藏」1.建立简单的装配体,保存为stp格式注:solidworks2016开始无法打开或保存为其他格式(igs,stp).从某一个网页上看到的攻略可以了(衷心感谢)注册表HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer:建立一个RemappedElevatedProxiesPolicy,并赋值为1.然后点开安装包

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号