1.普通函数
描述:普通的函数
语法:
定义语法:函数名 = ( 形参1、形参2、...) => { ... }
调用语法:函数名( 实参1、实参2、... );
说明:函数不调用就等于不存在
例子:
function _fn(_num1){
return _num1;
}
_fn(5);
2.回调函数
描述:定义时不会主动调用,会通过某个事件或状态发现的时候,自动调用
语法:没有固定语法
作用:能够在一个不了解的封闭结构原理前提下,在结构外部操作这个结构的如何执行
例子:
//案例1
_btn.onclick = () =>{
//点击执行的内容
}
//案例2
var arr = [1,2,3,4,5,6,7]
var res = arr.map(_fn =(_num)=>{
return _num*2;
});
3.匿名函数
描述:不写函数名的函数
语法:( 形参1、形参2、... ) => { ... }
说明:不能单独出现
例子:
_btn.onclick = function(){
//点击事件
}
4.箭头函数
描述:将function简写为=>的形式
语法:函数名 = ( 形参1、形参2、... ) => { ... }
例子:
_fn =(_num) =>{
return _num
}
_fn(5);
5.立即执行函数
描述:函数定义后不需要调用,立即执行的函数
语法:(function ( 形参1、形参2... ){ ... })(实参1、实参2、...);
说明:
( 1 ) 立即执行函数后需要有一个( 实参 ) 才能做到立即执行
( 2 )立即执行的函数体是函数表达式而不是函数声明
例子:
(function (_num){
return _num;
})(5);
6.递归函数
描述:能够在函数结束后,将函数调用
语法:fuction 函数名 ( 形参1、形参2... ){
...
函数名(形参1、形参2...)
}
函数名(实参1、实参2、...);
说明:
( 1 )递归函数没有固定语法
( 2 )需要满足以下三个条件:
a.递归变量赋初值
b.递归终止条件
c.递归变量向着终止条件的变化趋势
( 3 )循环本质就是递归函数
应用:处理算法、处理加和、处理乘积、获取节点、深浅拷贝...
例子:
var arr = [];
_fn = (_num) =>{
if(_num == 0){
return;
}
arr.splice(0,0,_num);
_num--;
_fn(_num);
}
_fn(5);
---------------------------------------------------------------------------------------------------------------------------------
ps:第一次写博客,写得不是很好,就当给自己做个笔记