为什么我们不能使用普通for循环打印javascript对象?

为什么我们不能使用普通for循环打印javascript对象?,javascript,object,javascript-objects,for-in-loop,object-properties,Javascript,Object,Javascript Objects,For In Loop,Object Properties,我正在学习JavaScript,所以今天我了解到,要打印或获取..in循环的对象属性,需要使用..in循环。但我在这里感到困惑,因为我以前没有见过for..in循环。所以我遇到了一个问题,为什么我们不能在JavaScript中使用for循环来打印对象属性?这对于…in循环是如何工作的? 这里有一个例子 let object1 = { name : 'someone', name2 : 'someone2', phno : 234568969 }; 每个人都建议把它打印出来 for(let ke

我正在学习JavaScript,所以今天我了解到,要打印或获取..in循环的对象属性,需要使用..in循环。但我在这里感到困惑,因为我以前没有见过for..in循环。所以我遇到了一个问题,为什么我们不能在JavaScript中使用for循环来打印对象属性?这对于…in循环是如何工作的? 这里有一个例子

let object1 = {
name : 'someone',
name2 : 'someone2',
phno : 234568969
};
每个人都建议把它打印出来

for(let key in object1)
{
console.log(key + "=" + object1[key]);
}

我的问题是这个循环是如何工作的,为什么这个循环用于打印属性。

而不是用于。。。在中,
用于。。。在
中,循环将迭代对象的可枚举属性(不是它们的值)

在上面的示例中,您正在迭代对象的键(“属性标签”),然后使用它们访问
object1
上的

下面的示例将更清楚地演示的
如何。。。在
中,循环工作

const arr=[23,45,67,56];
for(arr中的let索引){
//请注意,只有数组的索引是
//分配给“索引”,而不是值
console.log('索引:',索引);
//要访问这些值,应执行以下操作:
console.log('Value:',arr[index])

}
与。。。在中,
用于。。。在
中,循环将迭代对象的可枚举属性(不是它们的值)

在上面的示例中,您正在迭代对象的键(“属性标签”),然后使用它们访问
object1
上的

下面的示例将更清楚地演示的
如何。。。在
中,循环工作

const arr=[23,45,67,56];
for(arr中的let索引){
//请注意,只有数组的索引是
//分配给“索引”,而不是值
console.log('索引:',索引);
//要访问这些值,应执行以下操作:
console.log('Value:',arr[index])
}
为什么我们不能在JavaScript中使用for循环(普通)来打印对象属性?
答:因为对象是键值对,而不是数组

这对于..in循环是如何工作的?
答:循环对象的属性。(可用于获取对象[property]之类的值)

注:属性表示密钥

如果您想遍历数组,可以使用SimpleFor循环,如下所示

var x = [1, 2, 3];

var i;
for (i = 0; i < x.length; i++) {
  console.log(x[i]);
}
var x=[1,2,3];
var i;
对于(i=0;i
为什么我们不能在JavaScript中使用for循环(普通)来打印对象属性?
答:因为对象是键值对,而不是数组

这对于..in循环是如何工作的?
答:循环对象的属性。(可用于获取对象[property]之类的值)

注:属性表示密钥

如果您想遍历数组,可以使用SimpleFor循环,如下所示

var x = [1, 2, 3];

var i;
for (i = 0; i < x.length; i++) {
  console.log(x[i]);
}
var x=[1,2,3];
var i;
对于(i=0;i
for-in循环迭代所有对象,如果没有检查
hasOwnProperty
,那么它将迭代父对象的属性,因为for-in循环迭代所有对象,如果没有检查
hasOwnProperty
,那么它也将迭代父对象的属性