JavaScript遍历对象属性的三种方法详解
本文介绍JavaScript中遍历对象属性的三种常用方法:for/in语句、Object.keys()以及Object.getOwnPropertyNames()。详细解析了它们在处理自身属性与继承属性、可枚举性方面的区别,并通过代码示例展示了ECMAScript 5标准下的具体行为差异。
JavaScript遍历对象属性的三种方法
在JavaScript中,可以使用三种主要方式来遍历对象的属性。
第一种是for/in语句。该方法能够遍历对象自身的属性以及从原型链继承而来的属性,但仅针对可枚举(enumerable)的属性进行遍历。
第二种是Object.keys()方法。该方法接收对象作为参数,返回一个包含所有自身可枚举属性名称的字符串数组。需要注意的是,它只返回对象自身的属性,不包括继承属性,且该功能仅在ECMAScript 5及以上标准中可用。
3. Object.getOwnPropertyNames()。可以将对象作为参数传入Object.getOwnPropertyNames(),与Object.keys()一样,该语句将返回由所有property名称字符串所组成的数组。与Object.keys()不同的是,Object.getOwnPropertyNames()语句将返回所有对象自身的property(Own Property),而不论其是否为enumerable。该语句仅在ECMAScript 5标准中有效。
基于上述分析,可以将这三种方法的区别总结如下图所示。

为了验证上述理论,进行如下实验。
具体实现代码如下:
var o = {x:1, y:2};
var a = Object.create(o);
a.z = 3;
for(p in a){
console.log(p);
}//z x y
console.log(Object.keys(a));//["z"]
console.log(Object.getOwnPropertyNames(a));//["z"]JS大数值转字符串出现科学计数法怎么办
2026-11-05 17:09:21
JS split切割后出现空字符串怎么过滤
2026-11-05 16:00:30
在 React 或 Vue 项目中封装使用 JS 节流防抖
2026-11-05 15:27:29
JavaScript中怎么将带小数的字符串转为整数?
2026-11-05 14:32:38
怎么用JavaScript策略模式重构电商促销计算逻辑?
2026-11-05 14:01:09
