为什么这个JS for在循环中只记录一个属性的键,而不是整个属性

Why does this JS for-in loop log just the key of a property, and not the entire property?

本文关键字:属性 一个 for JS 循环 为什么 记录      更新时间:2023-09-26

MDN表示:

用于。。in语句以任意顺序迭代对象的可枚举属性。对于每个不同的属性,都可以执行语句。

如果我输入这个JavaScript代码:

var myObject = {0:'cat', 1:'dog', 2:'fish'};
for (var x in myObject) {
    console.log(x);
}

我得到这个输出:

0
1
2

如果它正在"遍历可枚举的属性",为什么不像这样记录整个属性?

0: 'cat'
1: 'dog'
2: 'fish'

我意识到我也可以让它通过myArray['x']记录值,但我想知道为什么它只记录密钥

这只是for在循环中的内置逻辑的一部分吗?并且与它们的预期用途有关吗?

这是javascript在循环中的预期行为。如果你想要财产的价值,那么你应该这样做:

var myObject = {0:'cat', 1:'dog', 2:'fish'};
for (var x in myObject) {
    console.log(myObject[x]);
}

在示例对象中,您有三个属性。这些属性的名称分别为0、1和2。这些属性的值为"cat"、"dog"answers"fish"。For在循环中枚举属性的名称,而不是值。