根据 MDN set Method for Map,在 javascript 中向地图添加键/值对的唯一方法是set方法。我想知道当我们添加带有方括号的键/值对时,映射的行为是什么,如下所示;
const testMap = new Map();
testMap.set( 1,"firstValue" );
testMap[2] = "secondValue";
console.log( testMap );
console.log( testMap[ 2 ] );
console.log( testMap[ '2' ] );
Run Code Online (Sandbox Code Playgroud)
看来我们可以同时拥有地图和物体!有人可以向我解释一下吗?我知道 Map 是一种对象,但这种行为可能会导致很多错误。有什么办法可以防止这种情况发生吗?顺便说一句,如果您添加带有方括号的键/值对,则无法使用get方法检索它。
这是一个特殊的情况。
映射是一种内部包含entries
数组的特殊情况。当您使用数组表示法时,您在该entries
数组之外设置键/值对。
当您使用set
orget
方法时,您实际上正在使用代码entries
使用的内部数组map
。
上面的示例本质上创建了一个使用内部entries
数组的 Map 对象。但是,使用数组表示法设置第二个对象意味着您要添加另一个条目/属性,但不在 Entries 数组中。
而且,这些值完全不同。但请注意,这两种数据结构不会发生冲突。所以 testMap.get(2) 与 testMap[2] 不是同一个变量。
归档时间: |
|
查看次数: |
3405 次 |
最近记录: |