ES6新增数组方法与函数整理

Array.of()

用途:避免使用数组构造函数引起的问题,let a =new Array(2),传入参数是数值时候为数组长度,传入参数是字符串形式时候为数组内容。传入数值+字符串形式为数组内容。
参数:个数不定,类型不定,都是要转换成数组中的元素。

Array.from()

用途:转换类数组对象arguments和可迭代对象如Symbol。
参数:1、类数组对象或可迭代对象。2、映射函数,将数组中的值转换成其他形式,不用写return,3、表示映射函数的this。(后两个可选)。

find()

用途:返回数组中符合查询条件的第一个值
参数:1、回调函数,2、回调函数中this的值(可选),

findIndex()

用途:返回数组中符合查询条件的第一个值的索引
参数:1、回调函数,2、回调函数中this的值(可选),

fill()

用途:用指定的值填充一至多个数组元素。
参数:1、填充值。2、开始索引。3、不包含索引(2、3可选参数,空为填充所有)

copyWithin()

用途:同时改变数组中的多个元素,从数组中复制值去填充
参数:1、开始填充值的索引。2、开始复制值的索引。3、指定停止复制值的索引位置。

forEach()

用途:从头至尾遍历数组,为每个元素调用指定函数。改变数组本身
参数:回调参数(数组元素,元素的索引,数组本身)

map()

用途:数组的每一个元素传递给指定的函数,并返回一个新数组。不改变原数组。函数的参数只有传进来的数组元素。
参数:1、回调(元素)

filter()

用途:将数组元素执行特定函数,而返回一个子集。输入是执行逻辑判断的函数,该函数返回true或false,输出是判定为true的元素

includes()

用途:表示某个数组是否包含给定的值,第一参数(必选)表示待检查的值,第二个参数(可选)表示搜索的起始位置

reduce()

用途:使用指定的函数将数组元素进行组合生成单个值。输入是两个参数,第一个是执行化简操作的函数。第二个(可选)的参数是一个传递给函数的初始值。多对一,输入多个值最终返回一个值

every()和some():

用途:对数组元素进行指定函数的逻辑判断。输入是特定函数,输出是true或者false.用来判断是否数组中所有数都满足某一条件或者是否存在某些值满足条件

函数形参的默认值:

特点:无论函数定义声明了几个参数,都可以传入任意数量的参数。
形式:
function a(url,timeout=2000,callback=function(){}),当timeout为undefined使用默认值,为null时候不使用默认值。

默认值对arguments对象的影响。

特点:
严格模式下,传入参数(a,b)后方法体内容中参数变化的时候不等于arguments[0]或[1]了,非严格模式会相等。
而使用默认值的时候跟在严格模式下情况一致,

默认参数表达式

特性:非原始值传参。
注意事项:getValue和getValue()传值是不一样的,一个传引用,一个传返回结果。
使用:
(1)传函数 function add(a,b=getValue())
(2)使用先定义的参数,作为后定义的参数默认值 function(a,a=b)

默认值临时死区。

概念:未执行声明的变量保存在临时死区,函数有自己专门的临时死区。function(a=b,b) //报错

不定参数

定义:在命名参数前加…表明是一个不定参数,该参数为一个数组,
特点:一个函数只有一个不定参数,且在最后面。且不能用于对象字面量setter中。
区别:arguments是包含了所有的参数,而不定参数包含不定传入的参数。

增强的function构造函数。

用途:接受字符串形式的参数和函数体
ES6增强:支持默认值和不定参数。

展开运算符

用途:指定一个数组,将他们打散后作为各自独立的参数传入函数。

例:let value=[1,2,3,5]
Max.max(…value,0)

name属性

每个函数都有自己名字,特殊的是Getset方法,略

函数的几种声明和原型链

常用的方式:
函数式声明(有提升,提升到作用域最前面。)
函数字面量(匿名函数赋值给变量,允许给匿名函数赋名字,指定名字可递归调用自己。也叫直接量,常用于表达式,)
构造函数

四种调用:方法、函数、构造器,apply和call

new.target

用途:使用new创建对象,new.target为类名,拒绝call方法的调用。

块级函数:略

箭头函数

没有this,super,arguments,new.targt绑定,都由最近外层的非箭头指定。
不能new关键字调用
没有原型
函数内部的this不可改变
不支持arguments对象
不支持重复的命名参数

你可能感兴趣的:(es6)