zoukankan      html  css  js  c++  java
  • 函数的容错处理 函数的返回值

       // JavaScript函数的容错处理
            // 我们函数再执行的过程中,有可能被输入错误的函数数值,会引起函数执行错误
            // 我们定义函数的时候,必须要防止错误数据的输入

            // 举例,累加求和函数

            function myAdd(max , min=1){
                // 新增判断,确保 min 最终存储的是较小值,max存储的是较大值

                // 当min中存储的数据为较大值时,执行程序
                if(min > max){
                    // 将min和max存储的数据,做一个数据交换
                    // 确保min存储较小值,max存储较大值
                    var int = min;
                    min = max;
                    max = int;
                }

                var res = 0;
                for(var i = min ; i <= max ; i++){
                    res += i;
                }
                console.log(res);
            }

            // 定义累加求和函数
            // 如果输入的实参 第一个数值是 赋值给 max ,第二个数值是赋值给 min
            // 如果值输入一个实参,会赋值给 max , min执行默认值,1

            // 终止值是 100 , 起始数值默认1
            myAdd( 100 );

            // 输入两个实参数据,一个赋值max 一个赋值 min
            myAdd( 30 , 10 );

            // 如果我们输入数据的大小顺序有误
            // 先输入了 较小值 后输入的加大值
            // max 输入了 1 min 输入了 50
            // 会造成 for循环  var i = 50 i <= 1  判断直接接是false 整个循环无法执行的
            // 需要在函数中,确保,min存储的是较小数值,max存储的是较大数值
            myAdd( 1 , 50 );
     
     
     
      // 在函数中 可以通过 return 关键词来定义函数的返回值也就是函数的执行结果
            // 如果没有 return 定义,函数的返回值,函数的执行结果是 undefined 

            // 我们之前定义的 累加求和函数

            function myAdd1(max , min=1){
                if(min > max){
                    var int = min;
                    min = max;
                    max = int;
                }
                var res = 0;
                for(var i = min ; i <= max ; i++){
                    res += i;
                }
                // 当前函数,是通过console.log()向控制台输出执行结果
                // 没有通过return关键词,定义执行结果,返回值
                // 因此当前函数的执行结果是 undefined
                console.log(res);
            }

            // console.log() 是一个函数,是JavaScript程序本身定义个一个函数
            // 这个函数的作用是 将 () 中的参数,向浏览器控制台输出
            // 例如 console.log( 100 ) 是向 控制台输出 参数 100 数值
            // 这个函数只是向控制台输出结果,自己本身,并没有定义返回值
            // 没有定义返回值的函数,返回值一律是 undefined

            // console.log( console.log( 100 ) )
            // 是向控制台输出 console.log( 100 )  这个函数的 返回值
            // 再次强调 console.log( 100 ) 作用是向控制输出 参数 但是没有返回值
            // 返回值 是 undefined 
            // 那么我们想 控制台 输出  console.log( 100 ) 的返回值 
            // 结果就是 undefined 

            // 总结: 控制台输出,页面输出等,都不算是 函数的执行结果,不算是返回值
            //       必须是 通过 return 定义的数据数值,才是函数的执行结果,才是返回值
            //       这是我们 JavaScript 语法中严格规定的,我们必须遵守


            console.log( console.log( 100 ) ) ;

            function myAdd2(max,min=1){
                if(min > max){
                    var int = min;
                    min = max;
                    max = int;
                }
                var res = 0;
                for(var i = min ; i <= max ; i++){
                    res += i;
                }
                // 通过 return 来定义 函数的执行结果,返回值
                return res;
            }

            // 观察两个函数的执行区别

            // myAdd1() 因为是 console.log(res) 执行结果会直接在控制台输出
            // 但是这个结果 只能在 控制台中看  不能赋值给 变量存储 
            myAdd1(1,100);

            // 有一个变量想存储 执行结果 5050 , 是不能成功的
            // 执行结果 就直接 在 控制台输出了 变量是无法存储5050这个数值的
            // 变量中存储的是函数的执行结果,是返回值
            // 当前 myAdd1() 没有 return 定义 返回值 是 undefined
            // a 当中 存储的是 undefined
            var a = myAdd1(1,100);
            console.log(a);


            // myAdd2() 因为是 return res 执行结果 不会 直接在控制台输出
            // 但是 可以 作为 执行结果 返回值  赋值给其他变量存储
            // 当然,也可以通过 console.log() 来输出函数的执行结果返回值
            // 这样操作函数的执行结果返回值就比较灵活方便了

            var b = myAdd2(1,10);

            console.log(b);

            console.log( myAdd2(1,100) )


            // 举例:类比一下
            // 例如我们 到 蛋糕店 有做出来可以卖的蛋糕 , 还有 放在橱柜里 展示的蛋糕
            // 橱柜里展示 的 蛋糕 就是 相当于 console.log()  document.write() 输出的
            // 只能看,不能吃,你也不能买,就是一个假的蛋糕
            // console.log()  document.write() 输出的 结果
            // 你只能看,不能做任何其他的操作,只能看不能用
            // 蛋糕店里,用来出售的蛋糕,你可以买,可以吃,可以拍脸上,爱干什么干什么
            // 相当于 我们 return 的 执行结果返回值
            // 可以赋值给变量,可以 console.log(),想怎么操作怎么操作
     
      // 函数中 return 的作用
            // 1, return 可以定义函数的返回值
            // 2, return 可以终止函数中一切内容的执行

            // 因此要特别注意定义 return 的位置
            // 如果定义位置错误,函数被错误的提前终止,就不会有正确的返回值了

            // 因为 return 可以终止函数的执行,因此一个函数中,只能有一个 return
            // 如果定义 两个 return ,第二个会被第一个给终止掉,没有作用
            // 但是 if() switch 分支结构语句,可以定义情况下,不同的 return 值
    右侧打赏一下 代码改变世界一块二块也是爱
  • 相关阅读:
    English in 999
    面向对象程序设计
    HOOK相关
    很幽默的讲解六种Socket IO模型(转)(Delphi版本)[转]
    P2P之UDP穿透NAT原理并有UDP打洞的源码[转]
    分批导出数据库记录
    DELPHI Winsock完成端口[转]
    由数据库排序差异引起的错误一例总结
    适配器模式
    JQuery+Asp.net+Webservice组成的Autocomplete示例
  • 原文地址:https://www.cnblogs.com/ht955/p/14021793.html
Copyright © 2011-2022 走看看