04 函数(上)

66 阅读3分钟

函数介绍

  • 函数概念: 将任意代码封装到一起,需要用的时候进行调用执行
  • 语法
          // 函数定义
           function 函数名(){
               函数体 //封装的代码
           }
           //函数调用语句:
               函数名()
  • 调用方式
//定义一个名为getMax的函数
function getMax() {
    var a = 23
    var b = 34
    var max = a
    if (max < b) {
        max = b
    }
    console.log('大的值是:', max)
}
getMax()  //调用函数getMax执行函数max封装的代码

函数参数

形参:

  • 就是在函数内部可以使用的变量,在函数外部不能使用
  • 行参的值是在函数调用的时候由实参决定的

实参

  • 在函数调用的时候给形参赋值的 也就是说,在调用的时候是给一个实际的内容的 多个参数的时候,是按照顺序一一对应的
function  函数名 (m,n,j){  // m,n,j  =>形参1,形参2...
            函数体
        }

        函数名(100,200,20)  // 100,200,20  =>实参1,实参2...

传参过程

传参过程.png

参数个数

形参比实参少

  • 因为是按照顺序一一对应的
  • 行参少就会拿不到实参给的值,所以在函数内部就没有办法用到这个值
 function fn(num1,num2){
      //函数内部可以使用num1和num2
    }
    // 本次调用的时候,传递了两个实参,100,200和300
    // 100对应了num1,200对应了num2,300没有对应的变量
    // 所以在函数内部就没有办法依靠变量来使用300这个值
    fn(100,200,300)

形参比实参多 因为是按照顺序一一对应的 所以多出来的行参就是没有值的,就是 undefined

 function fn(num1,num2,num3){
      //函数内部可以使用num1,num2和num3
    }
    // 本次调用的时候,传递了两个实参,100和200
    // 100对应了num1,200对应了num2
    // 而num3没有实参和其对应,那么num3的值就是undefind
    fn(100,200)

参数默认值

  function 函数名(形参1, 形参2) {
      形参1 = 形参1 || 默认值1
      形参2 = 形参2 || 默认值2

      函数体
    }
    函数名(实参1)
    函数名()

函数返回值

return 返回的意思,其实就是给函数一个 返回值 和 终断函数

  return语句  返回函数调用处
     =>   return 值
     =>   return

终断函数

  • 当我开始执行函数以后,函数内部的代码就会从上到下的依次执行
  • 必须要等到函数内的代码执行完毕
  • 而 return 关键字就是可以在函数中间的位置停掉,让后面的代码不在继续执行
function fn() {
      console.log(1)
      console.log(2)
      console.log(3)

      //写了return以后,后面的4和5就不会继续执行了
      return
      console.log(4)
      console.log(5)
    }
    //函数调用
    fn()

返回值

return 关键字就是可以给函数执行完毕一个结果

  function fn() {
      //执行代码
      return 100
    }
    //此时,fn() 这个表达式执行完毕后就有结果出现了
    console.log(fn())
  • 我们可以在函数内部使用 return 关键把任何内容当做这个函数运行后的结果

函数类型

 1.无参无返回值
              function  fun(){

              }
              fun ()

            2.有参有返回值
               function  fun(m){

              }
              fun (100)

            3.无参有返回值
              function  fun(){

                   return 值
              }
              var m = fun ()

            4.有参无返回值
              function  fun(m){

              }
              fun ()

函数优点

  • 封装代码,使代码更加简洁
  • 复用,在重复功能的时候直接调用就好
  • 代码执行时机,随时可以在我们想要执行的时候执行

函数定义方式

  • 声明式函数定义
function fn(){
    
}
  • 函数表达式, 也称赋值式函数定义
var fn = function(){

}

预解析

  • 浏览器javascript引擎解析执行javascript代码
  • 执行javascript代码之前,扫描通读js代码,如果发现声明式函数和var声明的变量,将其提前
javascript源代码   ——>  执行
                   |
                   预解析
                   1.声明式函数提前
                   2.var声明变量提前
       注:同名情况,声明式函数优先

       一定避免函数名和变量名相同的情况