WeakMap Map Object

93 阅读1分钟
类型 定义 键值 键的顺序 Size 迭代 序列化和解析
Object const ex1 = {name: 'obj'}
  • Object的键必须是String或者是Symbol
  • Object有一个原型,原型链上的键名可能会和自己再对象上设置的键名产生冲突(从ES5开始可以用Object.create(null)来创建一个没有原型的对象,但是这种写法不常用)
Object的键并不总是有序的 手动计算 Object没有实现迭代协议,只能借助Object.keys()、Object.values()、for in(迭代可枚举的属性) JSON.Stringfy()| JSON.parse()
Map const ex2 = new Map(); ex2.set('name','obj') 一个 Map的键可以是任意值,包括函数、对象或任意基本类型 Map的键值是有序的 通过Map对象的size属性获取 可迭代 没有直接的元素的序列化和解析的支持。
WeakMap const ex3 = new WeakMap(); ex3.set({name:2},2) 一个 WeakMap的键必须是对象 WeakMap的键值是有序的 通过WeakMap对象的size属性获取 没有直接的元素的序列化和解析的支持。