javaScript函数

函数

  • 概念:函数本身可以看做一段代码的容器,一个可以包含一堆代码,一个函数名可以重复使用

  • 语法:

    1.定义函数
    function 函数名(){
        需要执行的一段代码(函数体);
    }
    var 函数名 = function(){
          需要执行的一段代码(函数体);
    }
    
    2.调用函数
    函数名()
    
  • 注意:

    • 函数一旦定义,可以在程序中多次使用
    • 每调用一次函数,就会执行一次函数体中的代码。
    • 函数名命名规则:
      • 可以使用数字、字母、_等构成
      • 不会使用数字开头
      • 见词达意

函数参数

  • 概念:函数提供传递参数的机制,来实现函数针对不同的数据进行处理,完成相同的操作。

参数的分类

形式参数

  • 本质上就是一个变量,写在函数定义()中,该变量可以在函数中可以被调用会自动进行创建,在函数体里面会接收函数在调用时传入实际参数。可以将对应的实际参数的值体进行使用

  • 语法:

    function 函数名(形式参数){
        函数体
        形式参数可以在函数体中使用。
        
    }
    
  • 注意:形式参数只能在当前的函数体中使用,不能在其他地方使用。

实际参数

  • 在调用函数时,写在函数名()中数据

  • 在函数调用时,我们会把需要处理的数据通过实际参数传递到函数中的形式参数,在函数中通过形式参数来接收传递过来的实际参数的值,可以在函数体中进行操作。

  • 语法:

    调用函数时:
    函数名(实际参数)
    列子:
       function name(params) {
                console.log(`这是一个孩子`);
            }
    
            name(`小孩子`);
            naem(`大孩子`);
    
    
    
    

参数使用

  • 如果需要传递多个数据,多个形式参数和实际参数一一对应的

  • 语法

    function 函数名(形参1,形参2,形参3...形参n){
        函数体
        形式参数可以在函数体中使用。
        
    }
    函数名(实参1,实参2,实参3...实参n)
    

    输出这个函数

        function jiecheng(n) {
            var sum = 0;
            let jiecheng = 1;
            for (let i = 1; i <= n; i++) {
                jiecheng *=i;
                sum += jiecheng;
                
            }
            return sum
        }
         console.log(jiecheng(5));

函数表达式

  • 将定义的函数赋给一个变量,哦通过变量完成函数的调用和参数传递(即函数是匿名的)

  • 语法:

    var / let / const 变量名 = function[参数]{
        函数体语句
    }
    
    例子:
     let child = function (num1, num2) {
                if (num1 < num2) {
                    return num1
    
                } else {
                    return num2
    
                }
    
            }
            console.log(child(100,2));//2
    

函数的递归调用(重点,难点)

  • 递归调用:函数自己调用自己(即在函数的函数体语句中调用自己)

递归

  • 递归算法:

    • 用递归方式解决问题的前提

      • 问题可以进行分解,分解得到的新问题的解法与原问题解法相同

        比如计算8!阶乘:可以分解为 8 * 7!

      • 问题的分解过程必须有明确的结束条件。

    • 递归的过程:

      • 自上而下分解问题:得到最简单问题的解
      • 自下而上(回溯)得到原问题的解
  • 代码实现:

      //递归函数计算  n!
            function num(n) {
                //明确递归结束的条件
                if (n == 1) {
                    return 1;
                } else {
                    //继续分解n
                    return n * num(n - 1)
                }
    
            }
            console.log(num(5));
    

    练习1:定义递归函数,计算1+2+3+…100的值

      function num(n) {
                if ( n == 1) {
                    return n;
                } else {
                    return n + num(n-1)
                }
    
            }console.log(num(100));
    
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值