ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面。
参数默认值可以与解构赋值的默认值,结合起来使用。
ES6 允许使用“箭头”(=>)定义函数。
尾调用(Tail Call)是函数式编程的一个重要概念,本身非常简单,一句话就能说清楚,就是指某个函数的最后一步是调用另一个函数。
函数拓展
参数的默认值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| { function test1(x, y = 'world') { console.log(x, y); } test1('hello'); function test2(x, y = 'world', c) { console.log(x, y, c); } test2('hello'); }
|
参数作用域的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| { let x = 'test'; function test3(x, y = x) { console.log(x, y); } test3('hahaha'); let u = 'test'; function test4(c, y = u) { console.log(c, y); } test4('hahaha'); }
|
rest 参数 …arg
1 2 3 4 5 6 7 8 9 10
| { function test5(...arg) { for (let v of arg) { console.log(v); } } test5(1, 2, 4, 'a'); }
|
拓展运算符
1 2 3 4 5 6 7
| { console.log(...[1, 2, 3]); console.log('a', ...[1, 2, 3]) }
|
箭头函数
1 2 3 4 5 6 7 8
| { let arrow1 = v => v * 3; let arrow2 = () => 5; console.log(arrow1(3)); console.log(arrow2()); }
|
尾调用
1 2 3 4 5 6 7 8 9 10
| { function tail(x) { console.log(x); } function fx(x) { return tail(x); } fx(123); }
|