Map:一种新的数据结构
常用方法
遍历
应用场景
WeakMap
 
常用方法:
let map = new Map()
let obj = {
name: '张三'
}
map.set(obj, 'zhangsan')
console.log(map);
console.log(map.get(obj));
console.log(map.has(obj));
map.delete(obj) let map2 = new Map([
['name', 'lisi'],
['age', 18],
])
console.log(map2);
console.log(map2.size);
console.log(map2.has('name'));
console.log(map2.get('age'));
map2.set('name', '王五')
map2.delete('age')
console.log(map2);

  

遍历:
// 注意forEach里面第一个参数是value,第二个参数是key
map2.forEach((value, key) => console.log(value, key))
// 注意for of里面第一个参数是key,第二个参数是value
for (let [key, value] of map2) {
console.log(key, value);
} for (let key of map2.keys()) {
console.log(key);
}
for (let value of map2.values()) {
console.log(value);
}
for (let [key, value] of map.entries()) {
console.log(key, value);
}

  

map的应用场景跟object是一样的
map的api跟object比多一点灵活,
比如has方法,object只能循环判断,
比如size属性,object也进行循环计数。
在外资料显示,频繁对对象增删操作,map比object性能上更加有优势。
 
 
Weakmap:
Weakmap跟map相似,但是key只能是引用数据类型
let wm = new WeakMap()
wm.set([1], 2)
wm.set({
name: '张三'
}, '啦啦啦')
console.log(wm);

 

wm.clear(),注意WeakMap不支持clear方法
WeakMap也不支持遍历
因为不可遍历,所以也没有size属性
WeakMap也是弱引用,垃圾回收机制被回收后,弱引用里面的键值对也会消失,放置内存泄露
 
 
 

ES6-11学习笔记--Map的更多相关文章

  1. C++11 学习笔记 std::function和bind绑定器

    C++11 学习笔记 std::function和bind绑定器 一.std::function C++中的可调用对象虽然具有比较统一操作形式(除了类成员指针之外,都是后面加括号进行调用),但定义方法 ...

  2. JavaScript(ES6)学习笔记-Set和Map数据结构(一)

    一.Set 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. , , , , ']); s; // ...

  3. JavaScript(ES6)学习笔记-Set和Map与数组和对象的比较(二)

    一.Map,Set,Array对比: 1.增 let map = new Map(); let set = new Set(); let array = []; map.set('t',1); //M ...

  4. C++11学习笔记

    C++11 1.long long新类型 2.列表初始化 int t=0; int t={0}; int t(0); int t{0}; 注意:如果我们使用列表初始化有丢失信息的风险,则编译器报错 l ...

  5. es6.3学习笔记

    es版本发布相当快,从1.x到2.x,再直接到5.x,6.x 索引这个词在es中有多重意思: 索引(名词):一个索引类似于传统数据库中的一个索引,用于存储关系型文档.索引的复数为indexes或ind ...

  6. es6小白学习笔记(一)

    1.let和const命令 1.es6新增了let和const命令,与var用法类似,但它声明的变量只在let所在的代码块内有效(块级作用域,es5只有全局和函数作用域) { let a = 1; v ...

  7. python学习笔记 map&&reduce

    ---恢复内容开始--- 1.map 1)map其实相当对吧运算符进行一个抽象,返回的是一个对象,但是这里不知道为什么不可以对一个map返回变量打印两次,难道是因为回收了? def f(x): ret ...

  8. linux0.11学习笔记(1)

    公布软件包包括内容: bootimage.Z - 具有美国键盘代码的压缩启动映像文件: rootimage.Z - 以1200kB 压缩的根文件系统映像文件: linux-0.11.tar.Z- 内核 ...

  9. Python学习笔记 - map reduce

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- def f(x): return x * x r = map(f, [1, 2, 3, 4, 5, 6, ...

  10. ES6 promise学习笔记 -- 基本用法

    ES6 规定,Promise对象是一个构造函数,用来生成Promise实例. 下面代码创造了一个Promise实例. const promise = new Promise(function(reso ...

随机推荐

  1. JZ-039-平衡二叉树

    平衡二叉树 题目描述 输入一棵二叉树,判断该二叉树是否是平衡二叉树. 在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树 题目链接: 平衡二叉树 代码 /** * 标题:平衡二叉树 * 题目 ...

  2. VirtualBox 共享文件夹设置

    1. 安装VirtualBox的增强功能 2. 设置共享文件夹 参考:VirtualBox主机与虚拟机文件夹共享

  3. 七牛云cdn加速

    https://developer.qiniu.com/fusion/1228/fusion-quick-start https://blog.csdn.net/qq_27292113/article ...

  4. Java学习笔记:04面向对象-内部类_访问修饰符_final

    04面向对象-内部类/访问修饰符/final 1.static的介绍 static:关键字,静态的 static的作用是用来修饰类中的成员 2.访问一个类中的某一个成员变量 方法一: _1.创建对象 ...

  5. 浏览器输入URL,按下回车后发生什么?

    大致流程 URL 解析 DNS 查询 TCP 连接 服务器处理请求 浏览器接受响应 浏览器解析渲染页面 断开连接

  6. InnoDB 锁的类型

    一.全局锁 mysql> flush table with read lock; FTWRL 会对整个实例加只读锁.会阻塞所有线程读以外的所有操作.查看线程状态 State: Waiting f ...

  7. spring——通过xml文件配置IOC容器

    创建相关的类(这里是直接在之前类的基础上进行修改) package com.guan.dao; public interface Fruit { String getFruit(); } packag ...

  8. 想让DBA瞬间崩溃,那就让他去做SQL性能优化

    摘要:很多大数据计算都是用 SQL 实现的,跑得慢时就要去优化 SQL,但常常碰到让人干瞪眼的情况. 本文分享自华为云社区<做 SQL 性能优化真是让人干瞪眼>,作者: 石臻臻的杂货铺 . ...

  9. Django中ORM对数据库的增删改查

    Django中ORM对数据库数据的增删改查 模板语言 {% for line in press %} {% line.name %} {% endfor %} {% if 条件 %}{% else % ...

  10. [WC2016]挑战NPC(一般图最大匹配)

    [WC2016]挑战NPC(一般图最大匹配) Luogu 题解时间 思路十分有趣. 考虑一个筐只有不多于一个球才有1的贡献代表什么. 很明显等效于有至少两个位置没有被匹配时有1的贡献. 进而可以构造如 ...