Object.keys()方法是对一个对象的key遍历,会把key组成一个数组返回
示例:
// 参数为数组时,返回的是数组的索引
let arr1 = [1, 2, '3']
console.log(Object.keys(arr1)) // (3)["0", "1", "2"] let arr2 = [1, 2, '3', 'p', 're']
console.log(Object.keys(arr2)) // (5)["0", "1", "2", "3", "4"] // 参数为对象,返回的是对象的key属性
let obj1 = {
name: 'jack',
age: 16,
height: 178
}
console.log(Object.keys(obj1)) // (3)["name", "age", "height"] let obj2 = {
name: 'jack',
age: 16,
hello: function () {
console.log('hello')
}
}
console.log(Object.keys(obj2)) // (3)["name", "age", "hello"] // Object.keys()只能返回对象的可枚举属性,不可枚举的不能返回
let obj3 = {
name: 'jack',
age: 16,
hello: function () {
console.log('hello')
}
}
// Object.defineProperty(obj, key, property)给对象设置属性或修改属性,obj设置的对象,key需要新增或修改的属性,propert属性配置值
Object.defineProperty(obj3, 'hobby', {
value: 'printer',
enumerable: false // enumerable设置对象的属性是否可枚举,默认为true,
})
console.log(obj3, Object.keys(obj3))
// {name: "jack", age: 16, hello: ƒ, hobby: "printer"}
// (3)["name", "age", "hello"] // 如果参数不是一个对象,在es2015会强制转换为对象,在之前版本会报错
let string = 'foo'
console.log(Object.keys(string)) // (3)["0", "1", "2"] // 如果需要返回对象的全部属性(包括可枚举和不可枚举)可以使用Object.getOwnPropertyNames()方法
// Object.getOwnPropertyNames()方法根据字面意义就是返回对象自身全部属性名
let obj3 = {
name: 'jack',
age: 16,
hello: function () {
console.log('hello')
}
}
Object.defineProperty(obj3, 'hobby', {
value: 'printer',
enumerable: false
})
console.log(obj3, Object.getOwnPropertyNames(obj3))
// {name: "jack", age: 16, hello: ƒ, hobby: "printer"}
// (4)["name", "age", "hello", "hobby"]

Object.keys()返回对象自身可枚举属性组成的数组的更多相关文章

  1. 【Javascript-基础-getOwnPropertyNames】Object.getOwnPropertyNames() 获取对象自身可枚举属性

    可枚举属性和不可枚举属性 在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for-in查找遍历到. 可枚举属性 e ...

  2. Object.keys()返回对象的属性

    <script> // 传入对象,返回属性名 let obj = { 'a': '123', 'b': '456' } console.log(Object.keys(obj)) //[& ...

  3. JS对象的可枚举属性和不可枚举属性

    昨天在写文章(转载)的时候发现了有些对象的方法是分可枚举性和不可枚举性的.简单的查了一下资料,今天来捋一捋啥是对象的可枚举啥是不可枚举. 可枚举性: 对象的每一个属性都有一个描述对象,用来描述和控制该 ...

  4. get_class_vars 返回由类的默认属性组成的数组

    get_class_vars (PHP 4, PHP 5) get_class_vars - 返回由类的默认属性组成的数组 说明 array get_class_vars ( string $clas ...

  5. Object.keys 返回由一个给定对象的自身可枚举属性组成的数组

    在实际开发中,我们有时需要知道对象的所有属性, 原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组 http://blog.csdn.net/u014035151/ar ...

  6. Object.keys() 遍历对象

    Object.keys()方法的运用与数组遍历 Object.keys()用于获得由对象属性名组成的数组,可与数组遍历相结合使用,用起来效果杠杠滴.数组遍历可以用for()或forEach()来实现, ...

  7. JavaScript indexOf() 方法,获取元素的位置;Object.keys()获取对象的所有key的数组

    定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 语法 stringObject.indexOf(searchvalue,fromindex) 参数 描述 sea ...

  8. JS中的可枚举属性与不可枚举属性以及扩展

    在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的.可枚举性决定了这个属性能否被for…in查找遍历到. 一.怎么判断属性是否可枚举 js中基本包 ...

  9. for in 与 Object.keys 与 hasOwnProperty区别

    1.结论 for in遍历对象所有可枚举属性 包括原型链上的属性 Object.keys遍历对象所有可枚举属性 不包括原型链上的属性 hasOwnProperty 检查对象是否包含属性名,无法检查原型 ...

随机推荐

  1. oracle中关于clob类型字段的查询效率问题

    今天,公司项目某个模块的导出报如下错误: HTTP Status 500 – Internal Server Error Type Exception Report Message Handler d ...

  2. 【原】vue-router中params和query的区别

    1.引入方式不同 query要用path来引入 this.$router.push({ path: 'test', query: { type: 2, detail: '哈哈' } }) params ...

  3. Https 协议解析

    1 概述1.1 HTTPS    使用SSL协议,对HTTP协议通信过程中的明文数据加密,这就是HTTPS.网络分层结构如下: SSL协议负责数据加密,解密,位于HTPP协议和TCP协议之间.    ...

  4. hibernate映射配置

    1. 普通字段类型 2. 主键映射 单列主键映射 多列作为主键映射 主键生成策略,查看api:   5.1.2.2.1. Various additional generators 数据库: Q:一个 ...

  5. 吐血整理,一文读懂中国金融衍生品市场的前世今生和未来[z]

    [z]https://www.gfedu.cn/cfrm/content_22687.shtml 从定义上来说,金融衍生工具(derivativesecurity)是在货币.债券.股票等传统金融工具的 ...

  6. css实现左侧固定宽度,右侧宽度自适应

    #centerDIV { height: 550px; width: 100%; } #mainDIV { height: 100%; border: 1px solid #F00; margin-l ...

  7. Mysql密码忘记,修改密码方法

    1.set password for ‘root’@’localhost’ = password(‘czllss’); -- czllss为新密码

  8. idea中git远程版本回退

    idea中git远程版本回退 2017年10月15日 15:25:36 gomeplus 阅读数:19313 工作中遇到git远程仓库需要回退到历史版本的问题,根据网上的搜索结果结合自己的实践,整理了 ...

  9. 恒生投资交易系统性O3性能测量

    --每秒交易所成交量select b.tps, b.l_business_time from (select count(*) as tps, a.l_business_time from trade ...

  10. 2单表CRUD综合样例开发教程

    东软集团股份有限公司 基础软件事业部 单表CRUD综合样例开发教程 东软机密 tui 更改履历 版本号 更改时间 更改的 图表和章节号 状态 更改简要描述 更改申 请编号 更改人 批准人 V1.0 2 ...