name属性
每一个函数里面都自带一个name属性,返回的结果是此函数的名字
rest参数
1、在es5时,若没有形参,那么可以直接返回arguments,就可以拿到传递来的所有的实参了
使用arguments返回的是 伪数组
使用
2、在es6中,新增了一个rest参数 (...变量名) ,它可以用来获取函数中多余的参数的,这样就不需要使用arguments
使用rest参数返回的是 数组形式
arguments代替rest参数好处
arguments返回的是 伪数组,当我们要对它进行操作时,还要先转化为 数组形式 ;
rest参数 返回的是 数组形式,而且写法也更简洁
rest参数为最后一个参数
注意:rest参数后面不能有其他参数
形参与实参一一对应,没有对应的都交给 rest参数返回的数组里面
rest参数不在函数的length属性里面
函数参数的默认值
此时的 c没有传递实参,所以是undefined,那么最后的结果就是NaN
es6允许给函数的形参赋予默认值 , 有2种情况 !
- 传递实参时也传递了此形参的值
- 传递实参时没有传递该形参的值
传递实参时,传递了此形参的值
此形参就是传递过来的实参
传递实参时,没有传递该形参的值
那么此形参默认是 初始值
与解构赋值默认值结合使用
1、普通情况下,当我们传递一个对象时
2、解决这种比较繁琐的问题时,我们可以使用 解构赋值的方法 ,把里面的属性都解构出来
形参里面的解构就相当于
3、解构和赋初始值结合使用
4、特殊情况,传递的参数是一个空对象
箭头函数
基本用法
若箭头函数的形参是一个,那么就可以不加 ()
若箭头函数的代码块只有一条时,那么可以省略 {} 和里面的return
箭头函数结合变量解构使用
特点
箭头函数的this
箭头函数没有自己的this,它始终指向的是函数声明时所在作用域下的this
需要往上去寻找。
因为箭头函数没有自己的this,所以也无法使用call、apply、bind来改变this指向了
箭头函数没有new
箭头函数它不是一个构造函数,所以无法用new来创建实例化对象
箭头函数不可以使用 arguments
箭头函数不能使用arguments,因为箭头函数他所拿取到的是上一级的arguments。 我们可以使用 rest参数来代替
箭头函数不能用 yield命令
箭头函数不可以使用 yield命令,因此箭头函数不能用作 generator函数
注:箭头函数适合于this无关的回调:定时器、数组的方法回调
箭头函数不适合与this有关的回调 : DOM元素的事件回调,对象的方法