红宝书阅读笔记!第四天_Map

295 阅读1分钟

定型数组

1.啥是定型数组,历史🤔

2.ArrayBuffer

算了感觉太垃圾了我还用不上,日后再来

Map

Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值。

1.基本API

set():添加键/值对

get() has():进行查询

size():获得映射的键/值数量

delete() clear():删除值

把👇的看懂就好了

let myMap = new Map();
 
let keyObj = {};
let keyFunc = function() {};
let keyString = 'a string';
 
// 添加键
myMap.set(keyString, "和键'a string'关联的值");
myMap.set(keyObj, "和键keyObj关联的值");
myMap.set(keyFunc, "和键keyFunc关联的值");
 
myMap.size; // 3
 
// 读取值
myMap.get(keyString);    // "和键'a string'关联的值"
myMap.get(keyObj);       // "和键keyObj关联的值"
myMap.get(keyFunc);      // "和键keyFunc关联的值"
 
myMap.get('a string');   // "和键'a string'关联的值"
                         // 因为keyString === 'a string'
myMap.get({});           // undefined, 因为keyObj !== {}
myMap.get(function() {}); // undefined, 因为keyFunc !== function () {}

2.顺序和迭代

map()可以维护键值对的插入顺序,因为内部有一个迭代器。可以通过entries()方法取得这个迭代器。

3.讲了这么多,怎么选择map()Object()呢?

📕上说啊,对于大多数web开发没啥区别,也就是学了这个没有什么卵用,*!

但是对于性能优化map还是更有一些优势,因为直接看书没有看懂,我还在网上搜了一下,看到了一个表格很棒,贴在下面,来自MDN

Set

set的基本属性和map相差不大,等以后实际接触到set继续补充

文章内容参考:JavaScript高级程序设计(第四版)

标题样式来自:juejin.cn/post/684490…

哪里写错了就联系我🐧:54269504