什么是 函数?首先排除 不是数学中的函数

176 阅读3分钟

函数

函数 可以理解为一个盒子

为什么要有函数, 函数功能是什么

帮我们把项目中多个 地方使用到的功能(代码段), 抽离出来(就把他拿到那个小盒子, 就不需要在多个地方书写重复的功能)

然后在需要的地方 调用函数即可

写一个函数(或者说一个完整的函数) 分为两部分

  1. 定义阶段
  2. 调用阶段
for (var i = 0; i < 3; i++) {   // 假设 这是我当前项目中 多次使用到的一个常用功能, 比如说这个for循环在 多个地方都有用到

             console.log(i)

         }

函数的定义

语法:   function () {}

  • 两种定义函数的方式
  1. 赋值式定义: var fn = function () {} console.log(fn)
  2. 声明式定义: function fn1() {} console.log(fn1)
function () {}  ---> 匿名函数

               function    关键字, 表明后续紧跟一段代码, 是函数

               ()          内部书写, 参数      

               {}          内部书写, 函数调用执行时 的代码(可以理解为 要执行的代码)

         

           function fn1() {}   ---> 具名函数

               funtion     关键字, 表明后续紧跟一段代码, 是函数

               fn1         函数名, 将来可以通过 这个名字(变量) 去调用(去找到)本函数

               ()          内部书写, 参数 

               {}          内部书写, 函数调用执行时 的代码(可以理解为 要执行的代码)

函数的调用

  • 管函数定义是如何定义的, 调用方式永远只有一种

  • 语法:   函数名()

  • fn()

函数声明式和赋值式的区别

  1. 书写不同
  2. 打印时, 声明式 会带上函数名, 赋值式没有
  3. 调用时有差异 ; 声明式: 可以在函数定义前 调用

函数的参数

  • 我们的函数在不写参数的时候, 可以正常执行
  • 但! 功能相对单一
  • 如果函数想要真正的灵活起来, 在多个地方调用时 有不同的执行, 那么 我们可以通过 函数的参数来完成
  • 参数分为两个
  • 形参    函数名后(function) 后边的小括号内部, 每书写一个 就相当于在函数内部声明一个变量, 可以在函数内部去调用
  • 实参    调用函数时的小括号内部书写的值, 就是实参, 实参与形参为 一一对应的关系
  • 形参与实参会一一对应
  • 如果实参数量 少于 形参  那么前边的形参对应接受值, 没有对应实参 的 形参 值 为 undefined
  • 如果形参数量 少于 实参  那么会一一对应后, 多余的实参 无法通过 参数获取
function fn1(a, b) {    // 相当于 在函数内部创建两个变量 叫做 a 和 b, 他们的值有 实参决定

             console.log(a, b)

         }

         fn1(1, 2)   // 1 , 2

         fn1('aaa', 'bbb')   // 'aaa'    'bbb'

函数的返回值

  • 语法: return 需要返回的内容

  • 函数默认返回值

  • 我们可以不写 return 函数会默认在代码段最后一行 写上 retrun undefined

  • 我需要写返回值吗?

  • 我什么时候需要写 返回值

  • 返回值的书写 取决于 是否需要得到函数内部某一个变量的值, 如果需要 可以使用返回值将其返回, 如果不需要我们可以不写

  • return

  • 具有中断函数执行的功能

  • 如果不想中断函数, 那么一定要将 return 放在函数的最后

  • 除非就是想要通过 return 中断函数的运行


function fn() {

            console.log(1)

            return  // return 中断函数

            console.log(2)

            console.log(3)

            console.log(4)

            console.log(5)

        }

        fn()