javascript 中 Object.keys方法使用详解

时间:2023-09-25    阅读:0

Object.keys() 方法是 JavaScript 中用于获取一个对象自身可枚举属性的方法。它返回一个由对象的属性名组成的数组。下面详细解释了 Object.keys() 方法的使用方式。

语法:

Object.keys(obj)

参数:

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

返回值:

  • 一个由对象的自身可枚举属性的属性名组成的数组。

示例:

// 创建一个示例对象
const person = {
  firstName: 'Tom',
  lastName: 'Cruise',
  age: 30,
};

// 使用 Object.keys() 获取对象的属性名数组
const keys = Object.keys(person);
// 打印属性名数组
console.log(keys); // 输出: ['firstName', 'lastName', 'age']

// 使用数字作为属性名
var obj1 = { 5: "a", 2: "b", 3: "c"};
console.log(Object.keys(obj1)); // ["2", "3", "5"]

// 传入字符串
var str = 'abc123';
console.log(Object.keys(str));  //['0', '1', '2', '3', '4', '5']

// 数组
var arr = ["a", "b", "c"];
console.log(Object.keys(arr)); // ["0", "1", "2"]

// 含有方法
const obj = {
  a: 1,
  b: 2,
  f: function() {
    return 'hello';
  }
};

const keys = Object.keys(obj);
console.log(keys); // 输出: ['a', 'b', 'f']

注意事项:

  1. Object.keys() 只返回对象自身的属性,不包括继承的属性。只有那些具有 enumerable 特性设置为 true 的属性才会被包括在结果数组中。

  2. 结果数组中的属性名的顺序与属性在对象上定义的顺序无关。属性名的顺序可能是随机的,因此不应依赖于它们的顺序。

  3. 如果传递给 Object.keys() 的参数不是一个对象,而是一个非对象值(如字符串、数字等),它将抛出一个错误。

const nonObject = 1;
const keys = Object.keys(nonObject); // TypeError: nonObject is not an object
  1. 如果传递给 Object.keys() 的参数是 nullundefined,它将抛出一个错误。
const obj = null;
const keys = Object.keys(obj); // TypeError: Cannot convert undefined or null to object

const obj = undefined;
const keys = Object.keys(obj); // TypeError: Cannot convert undefined or null to object

综上所述,Object.keys() 是一个用于获取对象自身属性名的实用方法,可以在许多情况下用于迭代对象的属性。要注意的是,它只返回自身可枚举属性,不包括继承的属性。

分类:前端 标签: javascript
相关推荐
  • Python——PyQt5以及Pycharm相关配置

    Qt是一个跨平台的 C++图形用户界面库。QT一度被诺基亚拥,后出售给芬兰的软件公司Digia Oyj。PyQt5是基于Digia公司Qt5的Python接口,由一组Python模块构成。PyQt5本身拥有超过620个类和6000函数及方法。

    浏览10 2023-08-01