Object.keys() 方法详解:对象、字符串与数组的键提取
作者:木棉时间:2026-10-30 23:50:50浏览:476
本文详细解析 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() 方法的详细解析。如需了解更多前端技术内容,欢迎查阅本站相关文章或继续浏览后续教程,感谢支持!
作者最新文章
JavaScript怎么准确判断数据类型:typeof、instanceof与Object.prototype.toString
2026-11-05 17:09:21
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
