-
Notifications
You must be signed in to change notification settings - Fork 20
Open
Description
概述
1. JSON
JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null 。它基于 JavaScript 语法,但与之不同:JavaScript不是JSON,JSON也不是JavaScript。
API:
JSON.parse(text[, reviver]),解析JSON字符串,构造由字符串描述的JavaScript值或对象。提供可选的reviver函数用以在返回之前对所得到的对象执行变换(操作)。
JSON.stringify(value[, replacer [, space]]),将一个JavaScript值(对象或者数组)转换为一个 JSON字符串,如果指定了replacer是一个函数,则可以替换值,或者如果指定了replacer是一个数组,可选的仅包括指定的属性。
2. Map
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
API:
new Map([iterable]),Iterable 可以是一个数组或者其他 iterable 对象,其元素或为键值对,或为两个元素的数组。 每个键值对都会添加到新的 Map。null 会被当做 undefined。
Map.prototype.size
Map.prototype.forEach(callback[, thisArg]),以插入顺序对 Map 对象中的每一个键值对执行一次参数中提供的回调函数
Map.prototype.get(key, value)
Map.prototype.set(),为Map对象添加一个指定键(key)和值(value)的新键值对
Map.prototype.has(key),返回一个bool值,用来表明map 中是否存在指定元素
Map.prototype.delete(key),除 Map 对象中指定的元素
Map.prototype.clear(),移除Map对象中的所有元素
Map.prototype.entries(),返回一个新的包含 [key, value] 对的 Iterator 对象,返回的迭代器的迭代顺序与 Map 对象的插入顺序相同
Map.prototype.keys(),返回一个新的 Iterator 对象,它包含按照顺序插入Map对象中每个元素的key值
Map.prototype.values(),返回一个新的Iterator对象,它包含按顺序插入Map对象中每个元素的value值
3. Set
API:
new Set([iterable]),如果传递一个可迭代对象,它的所有元素将被添加到新的 Set中。如果不指定此参数或其值为null,则新的 Set为空。
Set.prototype.size
Set.prototype.add(value),在Set对象尾部添加一个元素。返回该Set对象。
Set.prototype.clear(),移除Set对象内的所有元素。
Set.prototype.delete(value),移除Set的中与这个值相等的元素,返回Set.prototype.has(value)在这个操作前会返回的值(即如果该元素存在,返回true,否则返回false)。
Set.prototype.has(value),返回一个布尔值,表示该值在Set中存在与否。
Set.prototype.forEach(callback[, thisArg]),按照插入顺序,为Set对象中的每一个值调用一次callBackFn。如果提供了thisArg参数,回调中的this会是这个参数。
Set.prototype.entries(),返回一个 [value, value] 形式的迭代器对象。
Set.prototype.keys(),`Set.prototype.values()`的别名。
Set.prototype.values(),返回一个 Iterator 对象,这个对象以插入Set 对象的顺序包含了原 Set 对象里的每个元素。
4. WeakMap
WeakMap 对象是一组键/值对的集合,其中的键是弱引用的。其键必须是对象,而值可以是任意的。
在 JavaScript 里,map API 可以通过在其四个 API 方法中共用两个数组(一个存放键,一个存放值)来实现。给该 map 设置值时会同时将键和值推到这两个数组的末尾。从而使得键和值的索引在两个数组中相对应。当从该 map 取值的时候,需要遍历所有的键,然后使用此索引从存储值的数组中检索出相应的值。
在原生的WeakMap中,每个键对自己所引用对象的引用是 "弱引用", 这意味着,如果没有其他引用和该键引用同一个对象,这个对象将会被当作垃圾回收。原生 WeakMap 的结构是特殊且有效的,其用于映射的 key 只有在其没有被回收时才是有效的。
API:
WeakMap.prototype.delete()
WeakMap.prototype.get()
WeakMap.prototype.has()
WeakMap.prototype.set()
5. WeakSet
它和 Set 对象的区别有两点:
- WeakSet 对象中只能存放对象引用, 不能存放值, 而 Set 对象都可以
- WeakSet 对象中存储的对象值都是被弱引用的, 如果没有其他的变量或属性引用这个对象值, 则这个对象值会被当成垃圾回收掉. 正因为这样, WeakSet 对象是无法被枚举的, 没有办法拿到它包含的所有元素
API:
WeakSet.prototype.add()
WeakSet.prototype.delete()
WeakSet.prototype.has()
参考:
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels