Js中Map和WeakMap的区别

(1)Map

  map本质上就是键值对的集合,但是普通的Object中的键值对中的键只能是字符串。而ES6提供的Map数据结构类似于对象,但是它的键不限制范围,可以是任意 类型,是一种更加完善的Hash结构。 如果Map的键是一个原始数据类型,只要两个键严格相同,就视为是同一个键。 实际上Map是一个数组,它的每一个数据也都是一个数组,其形式如下:

1 const map = [
2 ["name","张三"],
3 ["age",18],
4 ]

Map数据结构有以下操作方法:

size: map.size 返回Map结构的成员总数。

set(key,value):设置键名key对应的键值value,然后返回整个Map结构,如果key已经有值,则键值会被更新,否则就新生成该键。(因为返回的是当前Map 对象,所以可以链式调用)

get(key):该方法读取key对应的键值,如果找不到key,返回undefined。

has(key):该方法返回一个布尔值,表示某个键是否在当前Map对象中。 delete(key):该方法删除某个键,返回true,如果删除失败,返回false。

clear():map.clear()清除所有成员,没有返回值。 Map结构原生提供是三个遍历器生成函数和一个遍历方法

keys():返回键名的遍历器。

values():返回键值的遍历器。

e

你可能感兴趣的:(JavaScript)