JavaScript 之 函数

学习目标:

为什么需要函数

根据语法书写函数

根据需求封装函数

形参和实参的传递过程

使用函数的返回值

使用arguments获取函数的参数

1.函数的实参和形参

   <script>
        //函数形参实参个数匹配
        function getSum(num1, num2){    //num1 num2 为形参
            console.log(num1+num2);
            
        }
        // 1.如果实参个数和形参个数一致则正常输出结果
        // 2.如果实参个数多于形参个数 会取到形参个数
        getSum(1,2,3);   //123 为实参
        // 3.如果实参个数小于形参的个数  多余的形参定义为undefined 最终结果就是NaN
        //形参可以看作不用声明的变量 num2是一个变量但是没有接收值 结果就是undefined
        getSum(1);//NaN
        //建议 我们尽量让实参个数和形参个数相匹配

2.函数的返回值

2.1 return  语句

 

    <script>
        //函数是做某件事或者实现某种功能
        function cook(aru){
            console.log(aru);       
        }
        cook('大肘子');
        //函数的返回值格式

      /*   function 函数名(){
            return 需要返回的结果;
        }
        函数名(); */

        //(1)我们函数只是实现某种功能,最终的结果需要返回函数的调用者 函数名()  通过return()来实现
        //(2)只要函数遇到return就把后面的结果 返回给函数的调用者    函数名() = return后面的结果
        //3.代码验证
        function getResult(){
            return 666;
        }
        getResult(); //getResult = 666;
        console.log(getResult());
        // 4.求任意两个数的和
        function getSum(sum1,sum2){
            return sum1+sum2;
        }
        console.log(getSum(1,2));
    </script>

2.2函数返回值实例

任意两个数的最大值

        function getMax(sum1,sum2){
           /*  if (sum1 > sum2)
            {
                return sum1 ;
            }else{
                return sum2 ;
            }    */
            return sum1 > sum2 ? sum1 : sum2;
        }
        console.log(getMax(2,3));

任意一个数组中的最大值

   </script>
function getarrMax(arr){ //arr接受一个数组
        var  max = arr[0];
        for(var i = 0 ;i<arr.length ; i++)
        {
            if(arr[i] > max)
            {
                max = arr[i];
            }
        }
        return max;
    }
    var re = getarrMax([5,2,99,101,67,77]);//实参是一个数组
    console.log(re);
    
    </script>

2.3 return终止函数

return之后的代码就不再执行了

  <script>
        //函数返回值注意事项
        //1.return终止函数
        function getSum(num1,num2){
            return num1+num2;//return 后面的代码不会被执行
            alert('我是不会被执行的偶')
        }
        console.log(getSum(1,2));
    </script>

2.4 return 只能返回一个值。如果逗号隔开多个值,以最后一个为准

    <script>
        //
        function getSum1(num1,num2){
            return num1,num2;//return 返回的接轨是最后一个值
        }
        console.log(getSum1(1,2));
    </script>
 2.5.非要返回多个值,用数组
        //3.非要返回多个值,用数组
        function getResult(num1,num2){
            return [num1+num2 , num1 - num2 , num1 * num2 , num1 / num2];
        }
        console.log(getResult(1,2));

2.6 函数没有return返回undefined

        function getResult(num1,num2){
           
        }
        console.log(getResult(1,2));//没有return返回undefined;

 

3.break,continue,return的区别

break 结束当前循环体(for while)

continue 跳出本次循环,继续执行下次循环(for while )

return 不仅可以退出循环 还能返回return语句中的值 同时还可以结束当前函数体内的代码

 

4.arguments的使用

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

    <script>
        // arguments的使用 只有函数才有,arguments对象 而且是每个函数都内置好了这个arguments
        function fn(){
            console.log(arguments);//里面存储了所有传递过来的实参 arguments = [1,2,3]
            console.log(arguments.length);
            console.log(arguments[2]);
            // 我们可以按照数组的方式遍历arguments
            for (var i=0 ; i < arguments.length ; i++){
                console.log(arguments[i]);
            }           
        }
        fn(1,2,3);
    </script>

arguments实例

        //利用arguments求数组中的最大值
        function getMax(){
            var max = arguments[0]
            for(var i = 0 ; i <= arguments.length ; i++)
            {
                if(arguments[i] > max)
                {
                    max = arguments[i]
                }
            }
            return max;

        }
        console.log(getMax(133,244,3));
    </script>

 5.函数的两种声明方式

  (1)利用函数关键字自定义函数(命名函数)

    function fn (){};

    fn;

   (2) 函数表达式(匿名函数)

   var 变量名 = function() {};

   和变量命名很相似   

posted @ 2020-05-29 14:12  qiuqiu95  阅读(305)  评论(1编辑  收藏  举报