1、ES5.0关于函数
![](https://img.haomeiwen.com/i11823378/4fba06e2ecd8e477.png)
2、ES6函数 -> 遵循严格模式、默认/可选参数、不定参数、扩展运算符的应用、箭头函数
(1).默认/可选参数: function(name, age=0, height=180){};//建议默认参数放到形参最后,若不放到最后,还想取到默认参数,实参需传入undefined,否则语法错误;
![](https://img.haomeiwen.com/i11823378/383669744f017f24.png)
[1].arguments对默认参数的影响
![](https://img.haomeiwen.com/i11823378/e786d78c015d1834.png)
[2].TDZ对默认参数的影响、惰性求值
![](https://img.haomeiwen.com/i11823378/dcf4c280855450c7.png)
(2).不定参数:
![](https://img.haomeiwen.com/i11823378/51205a8fa9ed3ae5.png)
(3).扩展运算符 -> 准确说:展开、收集运算符 -> 收集运算符聚焦在函数参数使用;扩展运算符聚焦在数组中使用;ES7可操作对象属性,但其是浅克隆,有很大局限性;
- - - >>>扩展运算符的使用:简化书写长度,提升开发效率
![](https://img.haomeiwen.com/i11823378/f06903453d77325f.png)
![](https://img.haomeiwen.com/i11823378/d03054de29cb9647.png)
(4).箭头函数:函数声明必须用变量接收或在数组中使用;可省略return(视情况分析);箭头函数不能new对象,其没有构造函数,也就没有原型; 箭头函数中arguments、this是由函数定义时外围最近一层非箭头函数决定的,this指向确认后,后续不能进行更改; -> 其也是语法糖,底层实现同ES5我们自己实现并无异同,例如改变this指向等;
- - - >>>箭头函数:函数目的指向性更强,可读性更好,简化代码,提升开发效率
![](https://img.haomeiwen.com/i11823378/49414d3eb49ae70e.png)
![](https://img.haomeiwen.com/i11823378/a38021ae90e1aef4.png)
![](https://img.haomeiwen.com/i11823378/f58264d05dd5b318.png)
网友评论