首页 > 编程语言 > 详细

Web全栈工程师之路(三)——JavaScript篇(十三)——函数(一)

时间:2020-05-30 10:59:08      阅读:52      评论:0      收藏:0      [点我收藏+]

以下是html代码,个人建议放在IDE里运行,边看效果,边学习~ 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS初步(十三)——函数(一)</title>
    <script>
        /*  
            函数
                - 函数也是一个对象(特殊)
                - 普通对象像一个容器,只能装东西,而函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码)
                
        */

        //创建一个函数对象
        //可以将要封装的代码以字符串的形式传递给构造函数(封装的代码就是Function("")中双引号里面的部分)
        var fun = new Function("console.log(‘Hello,这是我的第一个函数‘);"); //很遗憾,实际上我们在实际开发中很少使用构造函数來创建一个函数对家
        console.log(typeof fun); //输出看看,显示function,没显示里面的代码

        //封装到函数中的代码不会立即执行,会在函数被调用的时候执行

        /*  
            调用函数
                语法:函数对象()
        */

        fun(); //调用函数,里面的代码会按照顺序执行,打开浏览器看看

        //向fun函数里添加属性试试
        fun.hello = "可安好,陌生人";
        console.log(fun.hello); //看效果


        /*  
            使用函数声明来创建函数
                语法:
                    function 函数名([形参1,...,形参n]){
                        语句...
                    }
                    这里的[]内容是可写可不写的意思
        */

        function fun2(){
            console.log("你好呀,我们又见面了");
        }

        fun2(); //执行函数fun2

        /*  
            使用函数表达式来创建一个函数
            var 函数名 = function([形参1,形参2.. .形参N]){
                语句...
            }
        */

        /* 
            function(){
                console.log("这种叫做匿名函数哦,没有名字,这个函数自然也就用不了(ps:一般用来传参)");
            }
            var 一个 fun3 来让其赋值给fun3,也就变成了上面的创建方法 
        */

        /*  
            函数的参数
                - 定义一个用来求两个数和的函数,可以在函数的()中来指定一个或多个形参(形式参数)
                - 多个形参之间使用逗号隔开,声明形参就相当于在函数内部声明了对应的变量
                  但是并不赋值 
        */

        function add(a,b){ //这里的a,b就是形式参数,代表着外部传进来的变量,本身是没有什么意义的
            var c = a + b;
            document.write(a+""+b+"的和是"+c+"<br/>");
        }

        /*  
            调用函数时,可以在()中指定实参(实际参数),实参将会赋值给函数中对应的形参
            调用函数时,解析器不会检查实参的类型,所以要注意是否有可能会接收到非法参数
            如果有可能则需要对参数进行类型的检查
            函数的实参可以是任意的数据类型
        */

        //可以这样调用
        add(1,3);
        
        //还可以这样调用
        one = 12;
        two = "345";
        add(one,two);

        //参数类型多样化

        add(true,false);

        /*  
            调用函数时,解析器也不会检查实参的数量,多余实参不会被赋值
            如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined
        */

        add("李耳",two,true,"123"); //输出发现只有前两个参数被用到了

        add(123); //输出显示为:123加undefined的和是NaN
        //为了更好的了解这个例子,我将在原来的add函数基础上修改一下add的代码,并新建一个add2函数

        function add2(a,b){ //这里的a,b就是形式参数,代表着外部传进来的变量,本身是没有什么意义的
            document.write("下面是修改了代码的add函数<br/>");
            var c = a + b;
            document.write(a+"<br/>");
            document.write(b+"<br/>");
            document.write(a+""+b+"的和是"+c+"<br/>");
        }

        add2(123); //输出a为123,输出b为undefined,即没写b自动判定为未定义类型的参数

        //值得注意的是函数的形参只会在函数里起作用,所以大可不必纠结形参名,在函数外面也可以重复使用相同的名字
        //在函数外定义的变量可以在函数内部使用,此时变量名不能与形参名一致
        
    </script>
</head>
<body>
    
</body>
</html>

 

Web全栈工程师之路(三)——JavaScript篇(十三)——函数(一)

原文:https://www.cnblogs.com/lyrebirth-world/p/12991248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!