📜  JavaScript Object.keys()函数(1)

📅  最后修改于: 2023-12-03 14:42:26.162000             🧑  作者: Mango

JavaScript Object.keys()函数

JavaScript 中的 Object.keys() 函数是一个非常有用的方法,它允许你获取给定对象的所有可枚举属性的名称,并返回这些名称组成的数组。

语法
Object.keys(obj)

参数:

  • obj: 需要获取属性名称的对象。

返回值:

  • 由可枚举属性的名称组成的数组。
示例
var obj = {
  name: '张三',
  age: 18,
  gender: '男'
};
var keys = Object.keys(obj);
console.log(keys); // ['name', 'age', 'gender']
注意事项
  • Object.keys() 方法只会获取对象自身的属性名称,不会包含继承自原型链的属性名称。
  • 返回的属性名称类型为字符串,并且数组中属性名称的顺序与遍历时返回的顺序一致。
  • 如果传入的参数不是对象类型,Object.keys() 方法将抛出一个 TypeError 异常。
  • 如果需要获取所有属性(包括不可枚举属性)的名称,可以使用 Object.getOwnPropertyNames() 方法。
使用场景

Object.keys() 方法非常适合用于遍历对象,尤其是需要比较对象属性的情况。可以通过比较两个对象的属性名称是否相等,来判断它们是否相等。

举个例子,我们可以编写一个比较两个对象是否相等的函数:

function isEqual(obj1, obj2) {
  if (Object.keys(obj1).length !== Object.keys(obj2).length) {
    return false;
  }
  for (var prop in obj1) {
    if (obj1[prop] !== obj2[prop]) {
      return false;
    }
  }
  return true;
}

该函数会先比较两个对象的属性数量是否相等,如果不等说明它们不相等,否则就遍历第一个对象的属性,并比较对应属性值是否相等。如果存在不相等的属性,则说明两个对象不相等,否则它们相等。

结论

Object.keys() 函数是 JavaScript 中一个非常好用的函数,它可以方便地获取对象的属性名称,并支持我们进行属性遍历、比较等操作。需要注意的是,该函数只会返回对象自身的可枚举属性,不包括继承自原型链的属性。