[关闭]
@lizlalala 2016-09-25T11:02:38.000000Z 字数 1687 阅读 1108

es6学习(三)

es6


Set

定义

  1. new Set([1,2,3,4])
    【注】:
    添加进的时候,不进行类型转换,内部是在===的基础上进行了补充(NaN===NaN)。
    因此
    5和"5"是两个不同的值
    两个空对象可以同时加入
    NaN只能添加一个

用途:

  1. [...new Set(array)]

方法

  1. 操作方法

  2. 遍历方法
    对象的是Object.keys()
    set是set1.keys(),同set1.values()

    1. let set1 = new Set(['red', 'green', 'blue']);
    2. //返回值相同
    3. for(let item of set1.keys())
    4. for(let item of set1.values())
    5. for(let item of set1)
    6. for (let item of set.entries()) {
    7. console.log(item);
    8. }
    9. // ["red", "red"]
    10. // ["green", "green"]
    11. // ["blue", "blue"]
  3. 用途

    1. let a = new Set([1, 2, 3]);
    2. let b = new Set([4, 3, 2]);
    3. // 并集
    4. let union = new Set([...a, ...b]);
    5. // Set {1, 2, 3, 4}
    6. // 交集
    7. let intersect = new Set([...a].filter(x => b.has(x)));
    8. // set {2, 3}
    9. // 差集
    10. let difference = new Set([...a].filter(x => !b.has(x)));
  4. 遍历的同时进行改变

    1. // 方法一
    2. let set = new Set([1, 2, 3]);
    3. set = new Set([...set].map(val => val * 2));
    4. // set的值是2, 4, 6
    5. // 方法二
    6. let set = new Set([1, 2, 3]);
    7. set = new Set(Array.from(set, val => val * 2));

weakset

与set的区别在于,它的成员只能是对象,也就是说,即使是通过new WeakSet(arr)定义的,arr的成员才是weakset的成员,因此如果arr只是【1,2】这种,是不行的。

接受一个数组或类似数组的对象作为参数

不是很明白的点:
弱引用


Map


比传统的Object更为拓展,key不限于字符串

使用

```
var m = new Map()
map.set(key,value)

//
也接受以数组作为参数
var m = new Map([[k1,v1],[k2,v2],[]])
```

注意

属性和方法

set中是add delete clear has.
map中是set delete clear get

  1. //set 返回map自身,因此可以链式调用
  2. m.set("edition", 6) // 键是字符串
  3. m.set(262, "standard") // 键是数值
  4. m.set(undefined, "nah")
  5. //get 未知则undefined
  6. m.get('')
  7. //has(key),clear()
  1. for (let [key, value] of map.entries()) {
  2. console.log(key, value);
  3. }
  4. // 等同于使用map.entries()
  5. for (let [key, value] of map) {
  6. console.log(key, value);
  7. }

转数组

  1. [...map.keys()]
  2. // [1, 2, 3]
  3. [...map.values()]
  4. // ['one', 'two', 'three']
  5. [...map.entries()]
  6. // [[1,'one'], [2, 'two'], [3, 'three']]
  7. [...map]
  8. // [[1,'one'], [2, 'two'], [3, 'three']]

与其他类型的转换


weakmap

跟weakset差不多


异步及async

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注