// 参数默认值 在有默认值的参数后面不能有没有默认值的参数,比如(x,y='world',c) 不允许
{
function test( x, y='world' ){
console.log(x,y);
}
test('hello'); // hello world
test('hello','q'); // hello q
let x = 'test';
function test2 (x , y=x ){
console.log(x,y);
}
test2( 'kill' ); // kill kill
//对不确定的参数
function test3(...args){
for(let v of args){
console.log(v);
}
}
test3(1 ,2 ,3 ,4 ,'a'); // 1 2 3 4 a
}
// 扩展运算符 ...
{
console.log(...[1 ,2 ,4]); // 1 2 4
}
// 箭头函数
{
// 方法名是arrow v是参数 没有参数用()代替
let arrow = v=> v+2;
console.log( arrow( 3 ) ); // 5
let arrow2 = () => v+2;
console.log( arrow( 3 ) ); // 5
}
// 尾调用 好处:提升性能;递归设计函数地址嵌套,相当消耗性能
{
function tail( x ){
console.log( 'tail', x);
}
function fx( x ) {
return tail( x );//必须是在fx的最后一行才交尾调用
}
fx(1);
}