Object.keys() 方法详解:对象、字符串与数组的键提取

作者:木棉

时间:2026-10-30

浏览:475

本文详细解析 JavaScript 原生方法 Object.keys() 的用法。该方法用于返回一个由给定对象自身可枚举属性名组成的数组。通过实例演示,展示了其在普通对象、字符串、构造函数及数组中的不同表现,包括属性名排序规则及空数组返回情况,帮助开发者准确掌握键值提取技巧。

文章目录

Object.keys() 方法概述

在实际开发场景中,开发者经常需要获取对象的所有属性名称。JavaScript 原生提供了 Object.keys() 方法以简化这一操作,该方法执行后会返回一个包含属性名的数组。

对象属性名获取

当传入普通对象作为参数时,Object.keys() 会返回该对象所有可枚举自身属性的名称列表。

var obj = {'a':'123','b':'345'};
console.log(Object.keys(obj));  //['a','b']
var obj1 = { 100: "a", 2: "b", 7: "c"};
console.log(Object.keys(obj1)); // console: ["2", "7", "100"]
var obj2 = Object.create({}, { getFoo : { value : function () { return this.foo } } });
obj2.foo = 1;
console.log(Object.keys(obj2)); // console: ["foo"]

字符串索引处理

若传入字符串,该方法会将字符串视为类数组对象,返回其字符索引组成的数组。

var str = 'ab1234';
console.log(Object.keys(obj));  //[0,1,2,3,4,5]

构造函数与实例处理

对于构造函数或类,直接调用 Object.keys() 通常返回空数组;若对其实例化对象调用,则返回实例自身的属性名。

    function Pasta(name, age, gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
            this.toString = function () {
                    return (this.name + ", " + this.age + ", " + this.gender);
            }
    }
    console.log(Object.keys(Pasta)); //console: []
    var spaghetti = new Pasta("Tom", 20, "male");
    console.log(Object.keys(spaghetti)); //console: ["name", "age", "gender", "toString"]

数组下标提取

当传入数组时,Object.keys() 返回的是数组元素的索引(下标)组成的数组。

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

以上就是关于 Object.keys() 方法的详细解析。如需了解更多前端技术内容,欢迎查阅本站相关文章或继续浏览后续教程,感谢支持!

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章