函数对象解构赋值
function func({name,age}) { age += 1; console.log(age); } func({name:'张三',age:15}); func({age:15,name:'张三'});
通过键值形式传参,可以避免参数传反
设置默认值
function func({name,age} = {}) { age += 1; console.log(age); } func();
func () 相当于传入了 undefined,使用默认值,默认值是空值,空值加 1 返回 NaN
function func({name='xx',age= 25} = {}) { age += 1; console.log(age); } func();
执行对象解构赋值,因为没有解构值,解构默认值要生效:name=’xx’,age= 25
接收用户任意值
function func(...v) { console.log(v) } func(1,2,3,4,5)
形参使用…v,表示接收用户任意长度数值,赋值给 v
function func(a,b,c,...v) { console.log(v) } func(1,2,3,4,5)
数组传参
function func(a,b) { console.log(a,b); } func(...[1,2])
…[1,2], 这种写法是将数组里的元素拆开传入参数
匿名函数
let fun1 = function() { console.log('fun1'); } fun1();
函数名省略掉,使用变量接收函数,调用函数变量加括号调用
箭头函数
fun1(); let fun2 = () => console.log('fun1'); fun2();
箭头函数省略掉 function 关键字和函数名,括号后用 =>,后面跟上函数体,省略掉花括号
// let fun2 = function (x) { // console.log(x); // console.log('fun2'); // } // // fun2(1); //使用箭头函数简化匿名函数 let fun2 = x => {console.log(x);console.log('fun2');} fun2(1);
形参只有一个时括号可以省略,函数体中多个语句花括号不能省略,多个语句用分号分隔
let fun3 = function() { return 'fun3' } console.log(fun3()) let fun33 = () => 'fun33' console.log(fun33())
没有形参时括号不能省略,return 关键字也可以省略
fun4 = function (x,y) { return x + y } console.log(fun4(1,2)) fun44 = (x,y) => x + y; console.log(fun44(3,5))
多个形参括号不能省略,return 关键字也可以省略
实际应用
let ladies = ['西施','王昭君','貂蝉','杨玉环'] // ladies.forEach(function (value,index,array) { // console.log(value,index,array); // }) ladies.forEach((value,index,array) => console.log(value,index,array))