立即执行函数
//立即执行函数
let sum = function (a,b){
return a+b;
}
console.log(sum(10,14))
//立即执行函数:声明调用二合一,声明后直接执行
(function (a,b){
return a+b;})(200,100);
箭头函数
//箭头函数
let sum = function (a,b){
return a+b;
}
console.log(sum(10,14))
//匿名函数可以使用箭头函数来简化
sum = (a,b)=>{
return a+b;
}
console.log(sum(10,14))
//如果箭头函数代码体只有一行语句,可以删除括号,自带return
sum = (a,b)=> a + b;
let sss = b => console.log(b);
sss(caonima);
//函数中使用了this,就不要用箭头函数
#高阶函数和回调
```js
1.高阶函数:使用函数为参数或者将函数作为返回的函数
function demo(){}
//函数作为参数:回调函数
demo(function(){});
------------
function demo2(f){
console.log(f);
function (){
return "acb";
}
}
let s = demo2(function(){});
console.log(s);
console.log(s());
-----------
// 回调函数
function a(cb){
cb()
}
function b(){
console.log('我是回调')
}
a(b)
// 偏函数
let sum = function (a,b){
return function(c,d){
return a+b+c+d;
};
};
let f1 = sum(1,2);
console.log(typeof f1); // 是一个函数
console.log(f1(3,4));
-----------
//柯里化
let sum = funtion(a){
return function(b){
return function(c){
return function(d){
return a+b+c+d;
};
};
};;
}
let f1 = sum(1)(2)(3)(4);
console.log(f1);
#函数的参数和返回值
```js
1.函数的参数与返回值
//归并参数,rest语法,将所有参数压到一个数组中来简化参数获取过程
sum = function(...arr){
console.log(arr);
//reduce()先忽略
return arr.reduce((p,c)=>p+c)
}
console.log(sum(1,2,3,4,5))
函数提升与重写
1.函数提升与重写
//声明
functio getName(){
return "welcome to" + getName;
}
//调用
console.log(getName("aobama"))
//调用语句写到了函数声明语句之前
console.log(sum(1,2));
//命名函数声明提升
function sum(a,b){
return a + b;
}
//如果不希望函数提升,必须先声明在使用,用匿名函数
let sum = funciton(a,b){
return a + b;
}
console.log(sum(1,2));