Javascript 为什么可以';t我用于贴图对象上的in-loop

Javascript 为什么可以';t我用于贴图对象上的in-loop,javascript,Javascript,为了我自己的利益,我正在研究Javascript中的每一个内置结构化对象,特别是我正在尝试每个基本的“For”循环,这样我就摸索出了在哪里工作的方法 对于Map,我注意到for/In循环是无声的。我希望它返回映射中每个条目的键值 let map=newmap([[1,1],“两个”,“两个”]]); 地图集(“三”,3);//而不是添加 log(`map has three=${map.has(“three”)}`); log(`map has size${map.size}`); //没有“

为了我自己的利益,我正在研究Javascript中的每一个内置结构化对象,特别是我正在尝试每个基本的“For”循环,这样我就摸索出了在哪里工作的方法

对于Map,我注意到for/In循环是无声的。我希望它返回映射中每个条目的键值

let map=newmap([[1,1],“两个”,“两个”]]);
地图集(“三”,3);//而不是添加
log(`map has three=${map.has(“three”)}`);
log(`map has size${map.size}`);
//没有“for循环”,因为映射使用键而不是索引号

for(let key in map)console.log(`for key${key}in map${map}`);//
for…in
迭代对象的可枚举属性。映射中的键不是可枚举属性(尽管与所有对象一样,映射也可以具有可枚举属性)。首先,它们可以是任何类型,而不仅仅是字符串,就像JavaScript对象一样,JavaScript对象在历史上一直是地图的代表

for…of
在上迭代,这就是
映射
为迭代生成其键/值的方式

在这个声明上


for(让key进入map)console.log(`for key${key}进入map${map}`);//这就像摩托车上的烟灰缸一样有用:)它引用了forEach方法,我已经知道这是一种更好的方法,但我对这个问题很好奇,为什么for/in循环没有返回任何东西。谢谢。我太傻了。这是我多年来一直误解的一个基本问题。
for (let key in map) console.log(`for key ${key} in map ${map}`); // <<< This does not return??