zoukankan      html  css  js  c++  java
  • 03JavaScript程序设计修炼之道 2019-05-26_21-50-45_2019-05-28_21-38-17 function 系统和自定义函数、return、函数递归

    18function.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    
    <body>
        <script>
            // 打印5次你好 
            /*
            console.log("你好");
            console.log("你好");
            console.log("你好");
            console.log("你好");
            console.log("你好");
            
            for(var i=0; i<5; i++){
                console.log("你好");
            }
            /*
              重复代码的写一次,代码的执行我们可以控制
              函数 1 提高代码复用性 2 函数封装代码执行可以被控制
              具备某种功能的代码块
    
              语法 
                function 函数名() {
                     // 具体代码实现
                }
    
              注意  函数定义后 不会自动执行,必须调用函数
    
              函数名();   
            */
            // 无参函数
            function printMsg() {
                // 函数体 完成特定功能的代码块
                console.log("你好");
            }
            printMsg();
            printMsg();
            printMsg();
            printMsg();
            window.printMsg(); // window.成员 简写成员
    
            // 函数参数
            // 求两个数较大值 然后控制台输出
            /*
               函数定义时候 小括号的参数叫形式参数(形参)
               函数调用时候 小括号的参数叫实际参数(实参) 
               函数调用时 实参->形参
            */
            function getMax(a,b) {
                console.log(arguments);
                console.log(arguments.callee);// 函数本身
                console.log(arguments.length);// 实参个数
                console.log(getMax.length);// 形参个数
                if (arguments.length != getMax.length) {
                    console.log("参数个数不匹配");
                } else {
                    // 10>undefined
                    if (a > b) {
                        console.log(a);
                    } else {
                        console.log("b");
                        console.log(b);
                    }
                }
            }
            //getMax(10, 12);// 多个参数由逗号隔开
            //getMax(1, 3, 5);
            //getMax(10);//undefined
            getMax(1, 3, 5, 6, 10);
    
            // arguments 对象
    
        </script>
    </body>
    
    </html>

    19function2.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            table,tr,td {
                border: 1px solid #000;
            }
        </style>
    </head>
    <body>
        <!--
        <table>
            <tr>
                <td></td>
                <td></td>
            </tr>
            <tr>
                    <td></td>
                    <td></td>
                </tr>
        </table>
        -->
        <script>
            // 定义一个函数 打印m*n表格
            function printTable(m,n) {
                document.write("<table>");
                for(var i=1; i<=m; i++) {
                    document.write("<tr>");
                    for(var j=1; j<=n; j++) {
                        document.write("<td>aaa</td>");
                    }    
                    document.write("</tr>");
                }
                document.write("</table>");
            }
            /*
            printTable(3,3);
            printTable(4,3);
            */
            var m = parseInt(prompt("请输入行数"));
            var n = parseInt(prompt("请输入列数"));
            printTable(m,n);
    
            // 函数实现 输出1-100中,除了7的倍数和带7的数 (传参实现) 
            // 17 27 .... 77 70 71 ...  parseInt(i/10)
            function printNumber(a,b) {
                for(var i=a; i<=b; i++) {
                    /*
                    if(i%7===0 || i%10===7 || parseInt(i/10)===7) {
                       
                    } else {
                        console.log(i);
                    } 
                    */
                    if(i%7===0 || i%10===7 || parseInt(i/10)===7) {
                       continue; 
                    }
                    console.log(i);     
                }
            }
            printNumber(1,100);
        </script>
    </body>
    </html>

    20function3.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <script>
            function getMax(a,b) {
                if(a>b) {
                    return a; // 返回一个值 还可以让函数提前结束调用 有时候我们直接用return;结束函数调用
                    console.log("welcome to beijing");
                } else {
                    return b;
                }
            }
            var max = getMax(10,4); // max = 10
            console.log(max);
        </script>
    </body>
    </html>

    20function4.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <script>
            // 1+2+3+...+100 前100项和
            function getSum(n) {
                var sum = 0;
                for(var i=1; i<=n; i++) {
                    sum += i;
                }
                return sum;
            }
            // 前n项和 == 前n-1项+n
            function getSum2(n) {
                /*递归结束条件*/
                if(n==1) {
                    return 1;
                }
                return getSum2(n-1)+n;
            }
            /*
               n=100 getSum2(99)+100 = getSum2(98)+99+100 = getSum(1)+2+3....+100
    
            */ 
            console.log(getSum2(100));
            //console.log(getSum(200));
          // 2+4+。。。+100
          function getSum3(n) {
                /*递归结束条件*/
                if(n==2) {
                    return 2;
                }
                return getSum3(n-2)+n;
            }
        console.log(getSum3(100));
    
        /*
          斐波那契数列
          0 1 1 2 3 5 8 13 31 34
          输出第n项 第n-1项+第n-2项
        */
        function fnFB(n) {
            if(n==1) {
                return 0;
            } else if(n==2) {
                return 1
            }
            return fnFB(n-1)+fnFB(n-2);
        }
        console.log(fnFB(10));
        </script>
    </body>
    </html>

    20function5.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <script>
           // 函数实现 输出1-3之间能组成的奇数个数 并输出这些数
           // 组成的奇数是两位数 个位上的数!=十位上的数
           // 13 31 23 21   1(2|3) 2(1|3) 3(1|2)
           function OddCount() {
               var count = 0;
               for(var i=1; i<=3; i++) {
                   for(var j=1; j<=3; j++) {
                       if(i!=j) {
                           var num = i*10+j;// ""+i+j "12"
                           if(num%2) { // "12"%2 
                               console.log(num);
                               count++;
                           }
                       }
                   }
               } 
               return count;
           }
           alert(OddCount());
        </script>
    </body>
    </html>

     

     

  • 相关阅读:
    一个兼容各浏览器的阻止冒泡的StopPropagation解决方案
    百度面试题:从输入URL到显示网页,后台发生了什么?
    三角形面积公式S=(1/2)absinC的证明
    正弦定理证明(方法二)
    高中数学总结(高一上半部分内容)
    解析几何部分
    正弦定理的证明(方法一)
    平面向量的坐标表示
    将三角函数值转换为角度
    余弦定理方法证明
  • 原文地址:https://www.cnblogs.com/HiJackykun/p/11129067.html
Copyright © 2011-2022 走看看