05-javascript学习笔记-函数

05-javascript学习笔记-函数

一、函数的使用

函数在使用时分为两步:声明函数和调用函数。

声明函数:

function getSum(num1,num2){
    var sum = 0;
    for(var i = sum1; i <= sum2; i++)
    {
        sum += i;
    }
    console.log(sum);
}

函数的封装:函数的封装是把一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口。

二、形参与实参

 在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参,而在调用该函数时,同样也需要传递相应的参数。

形参:形式上的参数,函数定义的时候 传递的参数 当前并不知道是什么

实参:实际上的参数,函数调用的时候 传递的参数 实参是传递给形参的

函数形参和实参个数不匹配:

  • 实参个数多于形参个数 只取到形参的个数
  • 实参个数小于形参个数 多的形参定义为undefined 结果为NAN

三、案例

1. 求两个数的最大值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 求两个数的最大值
        function getMax(a,b)
        {
            if (a > b)
            {
                return a;
            }
            else{
                return b;
            }
        }
        console.log(getMax(1,2));
    </script>
</head>
<body>
    
</body>
</html>

2. 求数组中的最大值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script>
        // 利用函数求数组中的最大数值
        function getArrMax(arr){
            var max = arr[0];
            for(var i = 1; i < arr.length; i++)
            {
                if(arr[i] > max)
                {
                    max = arr[i];
                }
            }
            return max;
        }
        var result = getArrMax([21,3,43,43,1,123])
        console.log(result);
    </script>
</head>
<body>
    
</body>
</html>

注意:函数如果有return,那么返回的是return 后面的值,如果函数没有return,那么返回undefined。

四、arguments的作用

 当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。

 arguments展示形式是一个伪数组,因此可以进行遍历,伪数组有以下特点。

  • 具有length属性
  • 按照索引方式储存数据
  • 不具有数组的push,pop等方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script>
        // arguments 伪数组  具有Length属性 以及按照索引方式储存数据
        function f(){
            console.log(arguments);
            console.log(arguments.length);
            console.log(arguments[1]);
        }
        f(1,2,3)
    </script>
</head>
<body> 
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script>
        // 利用函数求任意个数的最大值
        function getMax(){
            var max = arguments[0];
            for(var i = 1; i < arguments.length; i++)
            {
                if(arguments[i] > max)
                {
                    max = arguments[i];
                }
            }
            return max;
        }
        console.log(getMax(1,2,3));
        console.log(getMax(1,2,3,4,5,6));
        console.log(getMax(11,2,3,44,543,5,1));

    </script>

</head>
<body>
</body>
</html>

封装冒泡排序:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script>
        function BubbleSort(arr){

            for(var i = 0; i < arr.length - 1; i++)
            {
                for(var j = 0; j < arr.length - i - 1; j++)
                {
                    if(arr[j] > arr[j + 1])
                    {
                        var temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }

            return arr;
        }

        var arr1 = [5,4,3,2,1];
        console.log(BubbleSort(arr1));
    </script>
</head>
<body>
    
</body>
</html>

判断闰年:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script>

        // 判断是否是闰年
        function Judge(year){
            var flag = false;
            if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
            {
                flag = true;
            }
            return flag;
        }

        console.log(Judge(20000));
    </script>
</head>
<body>
    
</body>
</html>

五、函数表达式声明函数

// 函数表达式(匿名函数)
// var 变量名 = function(){};

var fun = function(){
    console.log('我是函数表达式);
}

fun();

注意:fun是变量名,不是函数名;函数表达式声明方式跟申明变量差不多,只不过变量里面存的是值,而是变量里面存的是值 而 函数表达式里面存的是函数。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var fun = function(){
            console.log("赵晓凡是仙女!");
        }
        fun();  // 使用变量名 接受 函数表达式
    </script>
</head>
<body>
    
</body>
</html>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少写代码少看论文多多睡觉

求打赏,求关注,求点赞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值