31、es6 -- 函数扩展

83 阅读3分钟

name属性

每一个函数里面都自带一个name属性,返回的结果是此函数的名字

image.png

image.png

rest参数

1、在es5时,若没有形参,那么可以直接返回arguments,就可以拿到传递来的所有的实参了

使用arguments返回的是 伪数组

image.png

image.png

使用

2、在es6中,新增了一个rest参数 (...变量名) ,它可以用来获取函数中多余的参数的,这样就不需要使用arguments

使用rest参数返回的是 数组形式

image.png

image.png

arguments代替rest参数好处

arguments返回的是 伪数组,当我们要对它进行操作时,还要先转化为 数组形式 ;

rest参数 返回的是 数组形式,而且写法也更简洁

rest参数为最后一个参数

注意:rest参数后面不能有其他参数

image.png

image.png

形参与实参一一对应,没有对应的都交给 rest参数返回的数组里面

rest参数不在函数的length属性里面

image.png

函数参数的默认值

image.png

此时的 c没有传递实参,所以是undefined,那么最后的结果就是NaN

es6允许给函数的形参赋予默认值 , 有2种情况 !

  • 传递实参时也传递了此形参的值
  • 传递实参时没有传递该形参的值

传递实参时,传递了此形参的值

此形参就是传递过来的实参

image.png

传递实参时,没有传递该形参的值

那么此形参默认是 初始值

image.png

与解构赋值默认值结合使用

1、普通情况下,当我们传递一个对象时

image.png

2、解决这种比较繁琐的问题时,我们可以使用 解构赋值的方法 ,把里面的属性都解构出来

image.png

形参里面的解构就相当于

image.png

3、解构和赋初始值结合使用

image.png

image.png

4、特殊情况,传递的参数是一个空对象

image.png

箭头函数

基本用法

image.png

若箭头函数的形参是一个,那么就可以不加 ()

image.png

若箭头函数的代码块只有一条时,那么可以省略 {} 和里面的return

image.png

箭头函数结合变量解构使用

image.png

image.png

特点

箭头函数的this

箭头函数没有自己的this,它始终指向的是函数声明时所在作用域下的this

需要往上去寻找。

因为箭头函数没有自己的this,所以也无法使用call、apply、bind来改变this指向了

箭头函数没有new

箭头函数它不是一个构造函数,所以无法用new来创建实例化对象

image.png

箭头函数不可以使用 arguments

箭头函数不能使用arguments,因为箭头函数他所拿取到的是上一级的arguments。 我们可以使用 rest参数来代替

箭头函数不能用 yield命令

箭头函数不可以使用 yield命令,因此箭头函数不能用作 generator函数

注:箭头函数适合于this无关的回调:定时器、数组的方法回调

箭头函数不适合与this有关的回调 : DOM元素的事件回调,对象的方法