函数的定义和调用

一、函数:就是可以重复执行的代码块
1 、定义一个函数
1 )函数声明(自定义声明):这种定义方法最强大,定义完毕后在哪里使用都可以,没有位置限制
function 函数名 (){
    方法体
}
2 )函数表达式
      Var myFun = function(){
       方法体
}
2 、函数的调用:函数名 ()
1 )创建函数之后一定要调用才会执行函数(也就是说函数如果不被调用,它自己不会执行)
2 )预解析:也就是说调用函数的时候不分前后顺序,调用语句写在哪里都可以访问到相应的函数
3 、函数名
1 )函数名 == 整个函数
    <1> 打印函数名(就是不带括号)就相当于打印整个函数
<2> 打印执行函数(就是带括号)就等于打印函数的返回值
2 )如果函数名相同,后面的函数会覆盖前面的函数(所以函数名千万不要取一样的)
3 )函数中包函数,先执行里面,后执行外面
4 、函数的加载问题: js 加载的时候只加载函数名不加载函数体。所以如果想使用内部的成员变量就一定要调用函数
 
 
 
二、函数的组成
1 、参数:参与运算的变量(设置参数可以解决修改值但不修改规则这个问题)
1 )形参:形式上参与运算的值,没有实际值,作用是为实参占位置,就像一个躯壳一样(可以理解为函数的内部变量外部无法访问)
2 )实参:实际上参与运算的值
注意:形参个数和实参个数匹配的问题(一般情况下我们不会让形参和实参不匹配)
    <1> 相等 à 正常执行
    <2> 实参个数 > 形参个数 à 正常执行(多余的实参函数不使用)
    <3> 实参个数 < 形参个数 à 要看你的程序是否报错
<4> 未给定实参的形参为 undefined
3 )参数相当于局部变量
4 )就近原则使用变量
5 )两个平级的函数中的变量不会相互影响(可以使用同样的形参名)
 
 
2 、返回值:函数程序运行后的结果外部需要使用的时候,我们不能直接给予,需要通过 return 返回(执行完毕函数以后,我们能给其他变量赋值)
1 )总结:函数内部, return 后面的值就是返回值
2 )作用:函数执行后剩下结果就是返回值
3 )函数执行完毕的时候会不会留下点什么取决于有没有返回值
注意:
    <1> 如果函数没有显式的使用 return 语句,那么函数有默认的返回值 undefined
    <2> 如果函数使用 return 语句,那么跟在 return 后面的值就成为函数的返回值
<3> 如果函数使用 return 语句,但是 return 后面没有任何值,那么函数的返回值也是 undefined
<4> 函数使用 return 语句后,这个函数会在执行完 return 语句之后停止并立即退出,也就是说 return 后面的所有其他代码都不会再执行
4 )返回值的作用:一般来说,函数通过运算出来的数都是半成品,需要二次加工,所以我们不能结束,需要在函数外部二次加工
<1> 函数的返回值必须要执行函数才能得到
 
 
3 、功能
1 )注意 js 中没有方法重载
 
 
 
三、函数是一种类型: function 类型
 
 
 
四、函数递归 ( 函数自己调用自己 )
1 、递归是一种思想,类似于计数器,开闭原则
2 、实质就是函数自己调用自己
3 、必须要有跳出条件,否则就是死循环
 
 
 
五、回调函数:函数作为参数进行传递和使用(函数调用别的函数)
1 function fn(){
 
}
fn()
(function fn(){})() ;效果是一样的,都是执行函数
2 、什么情况下使用回调函数:回调函数一般是用于定义一个规则来使用的(也就是说一个函数里面要用一个规则,但是这个规则又用另外一个函数来传递)
1 )规则的传递只能通过函数实现,通过变量无法达成,所以我们需要传递规则的时候必须使用函数
 
 
 
六、匿名函数
1 、定义:匿名函数就是没有名字的函数
(function (){})   à 如果没有在整个 function 外面加小括号的话会报错
2 、作用
1 )不需要定义函数名的时候
2 )书写起来更简便
3 、匿名函数的调用的三种方法
1 )直接调用 / 自调用
(function (){}) ();
2 )事件绑定
 
3 )定时器
 
 
 
七、构造函数的原理:可以 new 一个对象也不可不 new 一个对象而是直接 return
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值