ES6学习重难点总结(持续更新)

时间:2024-01-06 21:43:08

Symbol

1.Symbol.iterator

Symbol.iterator指向对象的默认遍历器方法:

String.prototype[Symbol.iterator]
//ƒ [Symbol.iterator]() { [native code] }
Array.prototype[Symbol.iterator]
//ƒ values() { [native code] }
Set.prototype[Symbol.iterator]
//ƒ values() { [native code] }
Map.prototype[Symbol.iterator]
//ƒ entries() { [native code] }

  

Set数据结构

1.数组去重的方法:

let arr = [1,1,2,2,2,3,1,2,4], _arr1, _arr2;
_arr1 = [...new Set(arr)]; //[1,2,3,4]
_arr2 = Array.from(new Set(arr)); //[1,2,3,4]

2.Set数据结构的实例的遍历方法:

  • keys():返回键名的遍历器
  • values():返回键值的遍历器(Set的默认遍历器)
    Set.prototype[Symbol.iterator] === Set.prototype.values    //true
  • entries():返回键值对的遍历器
  • forEach():使用回调函数遍历每个成员

PS:展开运算符...内部调用的是for...of,for...of内部调用的是values遍历器,类数组对象是没有迭代器的,不能使用展开运算符。

Array

1.Array.from(arrayLike, mapFn, thisArg)

arrayLike 想要转换成数组的伪数组对象或可迭代对象。

mapFn  (可选参数)如果指定了该参数,新数组中的每个元素会执行该回调函数。

thisArg (可选参数)可选参数,执行回调函数 mapFn 时 this 对象

类数组对象:Array.from({0:42, 1:52, 2:63, length:3})   // [42, 52, 63]    Array.from({length:4},(val,index)=>index)  //[0,1,2,3]
字符串:Array.from('123') // ["1", "2", "3"]
数组:Array.from([1,2,3]) //[1, 2, 3]
Map:Array.from(new Map([['a','aaa'],['b','bbb']])) //[['a','aaa'],['b','bbb']]
Set:Array.from(new Set([1,1,2,2,2,3,4,4,5])) //[1, 2, 3, 4, 5]