一、函数提升
函数提升与变量提升比较类似,是指函数在声明之前即可被调用。
1、函数提升能够使函数的声明调用更灵活
2、函数表达式不存在提升的现象
3、函数提升出现在相同作用域当中
二、函数参数
1、动态参数
arguments是函数内部内置的伪数组变量,它包含了调用函数时传入的所有实参。
2、剩余参数
剩余参数允许我们将一个不定数量的参数表示为一个数组。
1、...是语法符号,置于最末函数形参之前,用于获取多余的实参
2、借助...获取的剩余实参,是个真数组
开发中,还是提倡使用剩余参数。
展开运算符:
展开运算符(...),将一个数组进行展开。
典型运用场景:求数组最大值(最小值)、合并数组等。
展开运算符 or 剩余参数:
剩余参数:函数参数使用,得到真数组
展开运算符:数组中使用,数组展开
三、箭头函数
引入箭头函数的目的是更简短的函数写法并且不绑定this,箭头函数的语法比函数表达式更简洁。
箭头函数更适合于那些本来需要匿名函数的地方。
- 基本语法
- 箭头函数参数
1、普通函数有arguments动态参数
2、箭头函数没有arguments动态参数,但是有剩余参数...args
- 箭头函数this
在箭头函数出现之前,每一个新函数根据它是被如何调用的来定义这个函数的this值,非常令人讨厌。
箭头函数不会创建自己的this,它只会从自己的作用域链的上一层沿用this。
在开发中使用箭头函数前需求考虑函数中this的值,事件回调函数使用箭头函数时,this为全局的window,因此DOM事件回调函数为了简便,还是不太推荐使用箭头函数。