js中如何获取对象的所有Key值

获取key值有下列几种方法:

  • for..in...  原型链上 继承过来可枚举的都可拿到
  • object.keys 返回一个数组-----是如何排序的?先排合法的数组索引(0.1.2.3.4 整数)再按照字符串(a,b,c)创建顺序排序,再symble类型创建时间 (可枚举都能拿到)
  • Object.getOwnPropertyNames(obj)返回一个数组,拥有自身的可枚举属性和不可枚举属性.但是不可以拿到Symbol作为键的属性。
  • Object.getOwnPropertySymbols(obj) 方法返回一个给定对象自身的所有 Symbol 属性的数组。
  • reflect.ownKeys() 返回一个由目标对象自身的属性键组成的数组。相当于Object.getOwnPropertyNames(obj)方法 和 Object.getOwnPropertySymbols(obj)的合并。

提到for...in... 想到 和for...of...的区别

  • for..in...  遍历key值,遍历原型链上、继承过来可枚举的都可拿到
  • for of 遍历value,只能遍历有迭代器属性

版权声明:本文为QY_99原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。