0135 函数的返回值:return 语句、终止函数 、只能返回一个值、没有 return 返回 undefined、break &continue&return 的区别

2.4.1 return 语句

只要函数遇到return,就把return后面的结果 返回给函数的调用者,函数名() = return后面的结果

返回值:函数调用整体代表的数据;函数执行完成后可以通过return语句将指定数据返回 。
只要函数遇到return,就把return后面的结果 返回给函数的调用者,函数名() = return后面的结果。
// 声明函数
function 函数名(){
    ...
    return  需要返回的值;
}
// 调用函数
函数名();    // 此时,调用函数就可以得到函数体内  **return 后面的值**
        // demo:利用函数,求两个数的最大值
        function getMax(num1, num2) {
            // if (num1 > num2) {
            //     return num1;
            // } else {
            //     return num2;
            // }
            return num1 > num2 ? num1 : num2;
        }
        console.log(getMax(1, 3));
        console.log(getMax(11, 3));
        // demo:利用函数求数组 [5,2,99,101,67,77] 中的最大数值。
        function getArrMax(arr) { // arr 接受一个数组  arr =  [5,2,99,101,67,77]
            var max = arr[0];
            for (var i = 1; i <= arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i];
                }
            }
            return max;
        }
        // getArrMax([5, 2, 99, 101, 67, 77]); // 实参是一个数组送过去
        // 在我们实际开发里面,我们经常用一个变量来接受 函数的返回结果 使用更简单
        // var re = getArrMax([5, 2, 99, 101, 67, 77]);
        var re = getArrMax([3, 77, 44, 99, 143]);
        console.log(re);


        另一种写法
        function getMax(arr) {
            var temp;
            for (var i = 0; i < arr.length; i++) {
                if (arr[i] > arr[i + 1]) {
                    temp = arr[i];
                }
            }
            return temp;
        }

        console.log(getMax([5, 2, 99, 101, 67, 77]));

2.4.2 return 终止函数

return 语句之后的代码不被执行。

    function add(num1, num2) { //函数体 
        return num1 + num2; // 注意:return 后的代码不执行 
        alert('我不会被执行,因为前面有 return');
    }
    var resNum = add(21, 6); // 调用函数,传入两个实参,并通过 resNum 接收函数返回值 
    alert(resNum); // 27

2.4.3 return 只能返回一个值

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

    return 只能返回一个值。 如果用逗号隔开多个值, 以最后一个为准。
    function add(num1, num2) {
        //函数体
        return num1, num2;
    }
    var resNum = add(21, 6); // 调用函数,传入两个实参,并通过 resNum 接收函数返回值
    alert(resNum); // 6

2.4.4 函数没有 return 返回 undefined

函数都是有返回值的

1、如果有return ,则返回 return 后面的值

2、如果没有return, 则返回 undefined


2.4.5 break 、continue 、return 的区别

  • break :结束当前的循环体(如 for、while)
  • continue :跳出本次循环,继续执行下次循环(如 for、while)
  • return :不仅可以退出循环,还能够返回 return 语句中的值,同时还可以结束当前的函数体内的代码 【return可以用于循环、函数。】
        // 函数返回值注意事项
        // 1. return 终止函数
        function getSum(num1, num2) {
            return num1 + num2; // return 后面的代码不会被执行
            alert('我是不会被执行的哦!')
        }
        console.log(getSum(1, 2));


        // 2. return 只能返回一个值
        function fn(num1, num2) {
            return num1, num2; // 返回的结果是最后一个值
        }
        console.log(fn(1, 2));


        // 3.  我们求任意两个数的 加减乘数结果
        function getResult(num1, num2) {
            return [num1 + num2, num1 - num2, num1 * num2, num1 / num2];
        }
        var re = getResult(1, 2); // 返回的是一个数组
        console.log(re);


        // 4. 我们的函数如果有return 则返回的是 return 后面的值,如果函数么有 return 则返回undefined
        function fun1() {
            return 666;
        }
        console.log(fun1()); // 返回 666

        function fun2() {

        }
        console.log(fun2()); // 函数返回的结果是 undefined


    // 补充:经测试,return只能用于函数中嵌套循环语句的代码,不能单独用于没有函数包裹的循环语句中,否则报错
    function fn() {
        for(let i=0;i<6;i++) {
            if(i == 3) {
                return;
                // break
            }
            console.log(i)  // 0  1  2
        }
    }
    fn()

posted on 2020-01-04 18:19  冲啊!  阅读(859)  评论(0编辑  收藏  举报

导航