JavaScript高级__1函数

一、JavaScript 函数

1.1 JavaScript 函数定义

1.函数是什么?

       实现某一个功能的代码集合

2.函数的格式

      function 函数名(参数列表) {

           执行的代码

     }

3.函数表达式

      JavaScript 函数可以通过一个表达式定义。

      函数表达式可以存储在变量中.

      匿名函数赋值给一个变量,此时函数名称就是变量名称

      在函数表达式存储在变量后,变量也可作为一个函数使用.

      var  变量名称 = function(参数列表){

                需要执行的代码。

};

    调用函数:变量名称(传入的参数);

4.function()构造函数

      我们了解到函数通过关键字 function 定义

        function test1(num1,num2){

                alert("通过关键字 function 定义函数");

            }

      函数同样可以通过内置的 JavaScript 函数构造器(Function())定义

      可以通过new Function()创建函数

      var test3 = new Function("num1","num2","alert('第一个函数构造器Function()'+(num1+num2))")

5.函数的提升

      先使用再声明/定义、

6.自调用函数

      自调用函数没有名称

      将函数定义部分使用()包围

       最后使用一个()来充当函数的参数列表。

7.函数是对象

      在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" .

      JavaScript 函数描述为一个对象更加准确。

      对象有属性和方法,而函数也有属性和方法,因此我们认为函数也是对象

      函数的属性  arguments  --- 封装函数参数的对象

      函数的方法  toString() 方法将函数作为一个字符串返回。

8.JavaScript 函数参数

      JavaScript 函数对参数的值没有进行任何的检查。
      函数显式参数(Parameters)与隐式参数(Arguments)
      函数显式参数在函数定义时列出。
      函数隐式参数在函数调用时传递给函数真正的值。

例如;

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta charset="utf-8">
    </head>
    <body>
        <script>
            //1.函数是什么?
            //实行某个功能的代码集合
            //2.函数格式
            /*
            function 函数,名称(参数列表){
                执行代码;
            }
            */

            //3.函数表达式
            //JavaScript函数可以通过表达式来定义或声明
            //函数表达式可以储存在变量中
            //匿名函数赋值给一个变量,此时函数名称就是变量名称
            var test1 =function(){
                alert("第一个函数表达式。")
            };
            
            var test2 =function(str){
                alert("第二个函数表达式作者:"+str)
            }
            //在函数表达式存储在变量后,变量也可作为一个函数使用.
            //test1();
            //test2("fxt");

            //4.function() 构造函数
            //我们了解到函数通过关键字 function 定义
            function test1(num1,num2){
                alert("通过关键字 function 定义函数");
            }
            //test1(100,100);
            //函数同样可以通过内置的 JavaScript 函数构造器(Function())定义。
            //我能可以通过new Function()创建函数
            var test3 = new Function("num1","num2","alert('第一个函数构造器Function()'+(num1+num2))")
            //test3(1,5);
            //上面的构造函数相当于一个变量名称为test3的函数表达式
            var test3 = function(num1,num2){
                alert('第一个函数构造器Function()'+(num1+num2))
            }

            //5.函数提升(Hoisting)---- 先使用,后定义
            //变量的提升下面--- 先使用,后定义
             /*
            function  test4(){
                str="hello";
                alert(str);
                var str;
            }
            test4();
            */
           //函数的提升下面
            /*
            var res=test5();
            alert(res4);
            function  test5(){
                return "zhnagsan";
            }
            */

            //6.自调用函数
            function test6(){
                alert("手动调用!")
            }
            //test6();
            //1.自调用函数没有名称
            //2.将函数定义部分使用()包围
            //3.最后使用一个()来充当函数的参数列表。
            /*(function(){
                alert("自调用函数");
            })();*/
            //有参数的自调用函数
            /*(function(d1,d2){
                alert("有参数的自调用函数"+(d1+d2));
            })(12,56);*/

            //7.函数是对象
            /*function test7(){

            }
            alert(typeof test7);//函数类型*/
            //在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" .
            //JavaScript 函数描述为一个对象更加准确。
            //对象有属性和方法,而函数也有属性和方法,因此我们认为函数也是对象
            //函数的属性  arguments  --- 封装函数参数的对象
            function test8(a,b){
                alert("参数个数:--"+arguments.length)
            }
            //test8(1,2);
            //函数的方法  toString() 方法将函数作为一个字符串返回.
            var restest8=test8.toString();
            alert(typeof restest8);//string类型

            //8.函数是对象
            //JavaScript 函数对参数的值没有进行任何的检查。
            function  tes9(str){
              alert("参数---"+arguments.length);
            }
            test9("zhangsan");
            //函数显式参数(Parameters)与隐式参数(Arguments)
            //函数显式参数在函数定义时列出。
            //函数隐式参数在函数调用时传递给函数真正的值。
        </script>
    </body>
</html>

 二、JavaScript 函数调用

JavaScript 函数有 4 种调用方式。

   1.作为一个函数调用

    2.函数作为方法调用

    3.使用new 函数名称()调用函数

    4.函数是对象,作为JavaScript 函数,调用

例如;

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript 函数调用</title>
        <meta charset="utf-8">
    </head>
    <body>
        <p>作为一个全局函数调用的结果:</p>
        <p id="dome"></p>
        <script>
            //JavaScript 函数调用
            //JavaScript 函数有 4 种调用方式。
            //1.作为一个函数调用
            function test1(a,b){
                alert("参数"+(a+b))
                return a*b;
            }
            //document.getElementById("dome").innerHTML=test1(10,2);
            //上函数不属于任何对象。但是在 JavaScript 中它始终是默认的全局对象。
            //在 HTML 中默认的全局对象是 HTML 页面本身,所以函数是属于 HTML 页面.
            //在浏览器中的页面对象是浏览器窗口(window 对象)。以上函数会自动变为 window 对象的函数。
            //全局对象===window 对象
            //window.test1(2,3);

            //2.函数作为方法调用
            //方法属于对象的成员,对象的方法是一个函数,因此函数可以被作为方法调用。
           //创建了一个对象 (myObject), 对象有两个属性 (firstName 和 lastName), 及一个方法 (fullName).
            var myObject={
                firstName:"房",
                lastName:"续婷",
                fullName:function(){
                    return this.firstName+" "+this.lastName;
                }
            }
            var name = myObject.fullName();
            //alert(name);

            //3.使用new 函数名称()调用函数
            function test2(str){
                alert("函数调用"+str);
            }
            //alert(typeof test2);//functio类型
            var res1 = new test2("fxt");
            alert(typeof res1);

            //4.作为函数方法调用函数
            //在 JavaScript 中, 函数是对象。JavaScript 函数有它的属性和方法。
            //call() 和 apply() 是javascripr预定义的函数方法
            //call()
            //第一参数 必须是对象本身。
            //第二参数 是一组参数,实际上是被调用函数的参数
            function test3(str,age){
               alert("函数调用,参数="+str+",age=="+age);
           }
           var res2;
             //res2=test3.call(test3,"fxt",22)
           //apply()
           //第一参数 必须是对象本身。
           //第二参数 是一个数组,将被调用函数的参数封装成一个数组
           function test4(str,age){
               alert("函数调用,参数="+str+",age=="+age);
           }
           var canShu =["fxt",22];//封装函数参数的数组
           test4.apply(test4,canShu);

            //也可以使用自调用函数方法
        </script>
    </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值