JavaScript--函数:

函数:

认识函数

  • 函数是一个 js 的数据类型, 叫做 Function

  • 是一个复杂数据类型(地址/引用

  • 私人: 就是一个 “盒子”, 这个 “盒子” 可以承载一段代码

  • 涉及到两个过程:

    函数定义阶段: 把代码装进盒子的过程

    函数调用阶段: 把盒子内的代码执行的过程

函数定义阶段

  • 就是一个把代码装进 “盒子” 的过程
  • 在这个过程中, 被装进去的代码是不会执行的
方式1: 声明式函数

语法: function 函数名() { 你要装进盒子的代码 }

  • function 定义函数的关键字
  • 函数名 你给这个盒子起的一个名字, 遵守变量命名规则和规范
  • () 书写参数的位置
  • {} 代码段, 你要装进盒子的代码
方式2: 赋值式函数(函数表达式)
  • 就是把函数当做一个表达式赋值给另外的内容
  • 语法: var fn = function () {}

函数调用阶段

两种定义函数的方式, 他们的 调用方式 是一样的

语法: 函数名()

函数名 表示你需要哪一个函数内的代码执行

() 把函数内的代码执行一遍

两种定义函数的方式, 他们的 调用时机 是不一样的

  • 声明式函数可以先调用也可以后调用
  • 赋值式函数(函数表达式) 只能后调用, 先调用会报错
// 函数调用的时机问题
   // 在函数声明以前调用
    fn()
    function fn() { console.log('我是一个声明式函数') }
    // 在函数声明以后调用
    fn()
// 在函数声明以前调用, 直接报错
    // fn2() // fn2 is not a function
    var fn2 = function () { console.log('我是一个赋值式函数') }
    // 在函数声明以后调用
    fn2()

函数的参数

在函数内, 参数有两种:

形参:
  • 书写在函数定义阶段的 () 内
  • 就是一个只能在函数内部使用的变量
  • 可以书写多个, 书写多个的时候中间使用 逗号(,) 分隔
  • 形参的值有函数调用时传递的实参决定
实参
  • 书写在函数调用阶段的 () 内
  • 就是按照顺序依次给形参进行赋值的数据
  • 可以书写多个, 书写多个的时候中间使用 逗号(,) 分隔

函数的参数默认值

  • 给函数的形参添加一个默认值
  • 当你没有传递实参的时候, 可以使用默认值
  • 语法: 直接给形参进行赋值即可
// 函数的参数默认值
    function fn(a = 100, b = 200) {
      console.log('a : ', a)
      console.log('b : ', b)
    }

    // 本次调用没有传递实参, a 和 b 形参都使用默认值
    fn()

    // 本次调用传递了一个实参给到 a, 那么 a 就是被赋值为 1, b 依旧是用默认值
    fn(1)

    // 本次调用传递了两个实参分别给到 a 和 b 了
    fn(10, 20)

//案例1: 求任意两个数字的和, 把结果显示在控制台
function fn1(a, b) {
      // a 和 b 就是要求和的两个数字
      // 1. 求和
      var res = a + b

      // 2. 输出
      console.log(res)
    }

    // 将来想求 10 和 20 的和
    fn1(10, 20)


案例2: 求任意三个数字的和, 把结果显示在控制台

  function fn2(a, b, c) {

​    var res = a + b + c

​    console.log(res)

   }



   fn2(10, 20, 30)

案例3: 求任意个数字的和, 把结果显示在控制台

​ + 当可变的内容数量不可控的时候

​ + 我们的参数不好决定了

​ + 可以利用 arguments 解决问题

​ => 遍历 arguments, 把每一个数据叠加

  function fn3() {

   // 1. 准备变量接受求和结果

   var sum = 0



   // 2. 遍历 arguments

   for (var i = 0; i < arguments.length; i++) {

​    // 3. 把 arguments 内的每一个数据叠加到 sum 身上

​    sum += arguments[i]

   }



   // 4. 把 sum 输出

   console.log(sum)

  }



  fn3(10, 20, 30, 40, 50)

  fn3(10, 20, 30, 40)

  fn3(10, 20, 30)

  fn3(10, 20)

  fn3(10)

  fn3()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值