📅  最后修改于: 2023-12-03 15:27:40.036000             🧑  作者: Mango
在 JavaScript 中,for...in
和 Object.keys()
都可以用于迭代对象的属性,但它们之间有什么区别呢?这是本题的探讨方向。
for...in
for...in
循环语句可以迭代对象中所有可枚举属性的名称,包括原型链中的属性。语法如下:
for (variable in object) {
// code to be executed
}
其中:
variable
:每次迭代时将其设置为当前属性的名称。object
:要迭代的对象。下面是一个例子:
const obj = { a: 1, b: 2, c: 3};
for (const prop in obj) {
console.log(prop);
}
输出结果如下:
a
b
c
注意,for...in
的缺点是:
hasOwnProperty()
进行判断。Object.keys()
Object.keys()
方法返回一个由对象的属性名称组成的数组。语法如下:
Object.keys(object)
其中:
object
:要返回其枚举自身属性的对象。下面是一个例子:
const obj = { a: 1, b: 2, c: 3};
const keys = Object.keys(obj);
console.log(keys);
输出结果如下:
["a", "b", "c"]
Object.keys()
的优点是:
for...in
和 Object.keys()
都可以用于迭代对象的属性,但它们之间还是有些许区别的。需要根据具体场景来选择使用哪种方式。