JavaScript基础学习 函数与return、arguments

<!DOCTYPE html>
<html>

<head>
    <title>js开始学习</title>
    <script>
        function getSum(num1, num2) {
            console.log(num1 + num2);
        }
        //  实参少于形参时,多的形参会定义为undefined
        // 实参多于形参时,只会取到对应的形参个数
        getSum(1, 2); //3
        getSum(1, 2, 3); //3
        getSum(1); //NaN

        console.log('--------------------------');

        function getMax(num1, num2) {
            if (num1 > num2) {
                return num1;
            } else {
                return num2;
            }
        }
        console.log(getMax(10, 20));

        console.log('--------------------------');

        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 re = getArrMax([10, 20, 40, 9, 8, 56, 99]);
        console.log(re);

        console.log('--------------------------');

        //  return 一般不能返回多个值,但可以通过数组来返回多个值  return具有终止函数的作用
        function retrunMulti(num1, num2) {
            return [num1 + num2, num1 - num2, num1 * num2];
            alert('这句话是不会被执行的!!!');
        }
        var result = retrunMulti(10, 5);
        console.log(result);


        console.log('--------------------------');
        //函数当中如果有return,则有返回值,如果函数当中没有return时,则返回undefined
        function testOne() {
            return 666;
        }

        function testTwo() {

        }
        console.log(testOne()); // 666
        console.log(testTwo()); // undefined
    </script>

</head>

<body>

</body>

</html>

在这里插入图片描述

函数案例之实现数组翻转、冒泡排序、判断闰年

<!DOCTYPE html>
<html>

<head>
    <title>js开始学习</title>
    <script>
        //  函数实现数组翻转
        function flip() {
            var temp = 0;
            if (arguments.length % 2 == 0) {
                for (var i = 0; i < arguments.length / 2; i++) {
                    temp = arguments[arguments.length - 1 - i];
                    arguments[arguments.length - 1 - i] = arguments[i];
                    arguments[i] = temp;
                }
                return arguments;
            } else {
                for (var i = 0; i < (arguments.length - 1) / 2; i++) {
                    temp = arguments[arguments.length - 1 - i];
                    arguments[arguments.length - 1 - i] = arguments[i];
                    arguments[i] = temp;
                }
                return arguments;

            }

        }
        console.log(flip(1, 2, 3, 4, 5));
        console.log(flip(1, 2, 3, 4, 5, 6));
        console.log(flip(1, 2, 3, 4, 5, 6, 10, 90, 17, 98));


        console.log('---------------------------------------------------------');

        //  函数实现数组翻转二



        function reverse(arr) {
            var newArr = [];
            for (var i = arr.length - 1; i >= 0; i--) {
                newArr[newArr.length] = arr[i];
            }
            return newArr;
        }
        var result = reverse([1, 2, 3, 4, 5]);
        console.log(result);

        console.log('---------------------------------------------------------');

        //函数实现冒泡排序
        function bubble(arr) {
            var temp = 0;
            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]) {
                        temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
            return arr;
        }
        var result = bubble([23, 3, 46, 5, 6]);
        console.log(result);
         console.log('---------------------------------------------------------');

        //函数判断闰年的案例
        function judge(year) {
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                return year + '年是闰年';
            } else {
                return year + '年不是闰年';
            }
        }
        console.log(judge(2010));
    </script>

</head>

<body>

</body>

</html>

在这里插入图片描述

arguments

arguments的作用:当我们函数不确定形参的具体个数时,我们可以使用arguments

<!DOCTYPE html>
<html>

<head>
    <title>js开始学习</title>
    <script>
        // arguments的使用   只有函数才有arguments对象 而且每个函数都内置好了这个arguments
        function fn() {
            console.log(arguments);
            console.log(arguments.length);
            console.log(arguments[2]);
            //可以按照数组的方式遍历arguments
            for (var i = 0; i < arguments.length; i++) {
                console.log(arguments[i]);
            }
        }
        fn(1, 2, 35);
        //伪数组 并不是真正意义上的数组
        // 1. 具有数组的length属性
        // 2.按照索引的方式进行存储的
        //3.没有真正数组的一些方法 pop()push()等等
    </script>

</head>

<body>

</body>

</html>

arguments案例

<!DOCTYPE html>
<html>
    <head>
        <title>js开始学习</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, 3, 4, 5, 8));   //8
        console.log(getMax(1, 3, 10, ));  //10
        console.log(getMax(18, 3, 4, 5, 8, 99, 100, 909));  //909

    </head>

    <body>
        
    </body>
</html>

函数嵌套

<!DOCTYPE html>
<html>
    <head>
        <title>js开始学习</title>
        <script>
           
        function getYear() {
            var year = prompt('请你输入年份:');
            return sort(parseInt(year));
        }

        function sort(year) {
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                return year + '年2月份有29天';
            } else {
                return year + '年2月份有28天';
            }
        }

        var result = getYear();
        alert(result);
        </script>

    </head>

    <body>
        
    </body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值