javascript高级

1.javascript函数

函数就是某一个具体功能实现代码的集合

函数的创建

function 函数名称(参数列表){函数体}

[1]函数按照名称分为有名函数和匿名函数

有名函数:function test1(){}

匿名函数:window.οnlοad=function(){}

[2]函数按照参数分为:无参数函数和有参数函数

参数——参数就是局部变量,接收函数之外的数据进入本函数中进行运算活动。

无参数的函数:function test1(){}

有参数的函数:function test2(num,str){}

[3]函数按照返回值分为:无返回值的函数和有返回值的函数

返回值——函数执行完成以后的最终执行结果

无返回值的函数:function test1(){}

有返回值的函数:function test1(){ return xxxx;}

函数声明后不会立即执行,会在我们需要的时候调用到。

函数的调用:1.要什么,给什么2.给什么,收什么

2.函数表达式

[1]表达式——有运算数据和运算符号组成的运算式子

表达式除过 1+1 /  10>3 /  true || false  /  typeof str这些, 还有对象调用属性/对象调用方法都是表达式。

var  student={name:"zhangsan",
                test1:function(){}}
        student.name;//zhnagsan
        student.test1();

函数表达式---将函数的创建赋值给变量,函数没有名称,此时变量名称就成了函数名称。

var  myfun=function(){} //函数表达式

在使用的时候直接用变量名称表示了函数/函数的结果。

[2]new Function()--通过new Function(函数的参数,函数体中的代码)

var myFunction = new Function("a", "b", "return a * b");

var x = myFunction(4, 3);

[3]函数提升

之前都是先创建出函数,然后在调用创建的函数

function  my1(){
            alert("测试函数");
        }
        my1();

        函数提升---先调用没有创建的函数,然后在创建函数,
                在执行的时候创建函数会提升到调用函数之前执行。
        my1();
        function  my1(){
            alert("测试函数");
        }

[4]自调用函数---将需要被调用的函数用“()”包围,然后最后跟随一个“()”表示调用。
        (function test3(){alert("自调用函数");})();
        (function test3(num1,num2){
               alert("自调用函数--num1=="+num1+",num2=="+num2);
           })(100,200);

[5]函数可作为一个值使用
        function myFunction(a, b) {
                    return a * b;
        }
        var num = myFunction(2, 3);
        var x=num * 2;

        var x = myFunction(2, 3) * 2;
[6]函数是对象

在 JavaScript 中使用 typeof 操作符判断函数类型将返回 "function" 。
        function my1(a, b) {
                    return a * b;
        }
        alert(typeof my1);//function
        但是JavaScript 函数描述为一个对象更加准确。
        JavaScript 函数有 属性 和 方法。

        arguments.length 属性返回函数调用过程接收到的参数个数.
        function myFunction(a, b) {
                return arguments.length;
        }
        toString() 方法将函数作为一个字符串返回.
        function myFunction(a, b) {
                return a * b;
        }
        var txt = myFunction.toString();

[7]函数参数

参数---参数就是局部变量,接收函数之外的数据进入本函数中进行运算活动。
        函数的参数分为
            显式参数(Parameters)与隐式参数(Arguments)
        显式参数(Parameters)--在函数创建的时候,写在"()"中的就是显式参数。
        function myFunction(a, b) {
                return arguments.length;
        }
        a和b就是myFunction函数的显示参数

        隐式参数(Arguments)---在函数创建的时候,"()"中没有参数定义,
                调用的时候可以传递参数值,传递的参数值被默认封装到了
                arguments数组对象
        function test4(){
                //alert(arguments);  //[object Arguments]
                alert(arguments[0]); //100
                alert(arguments.length); //2
            }

        test4(100,200);

[8]函数的调用

1.作为一个函数调用
        function test1(num1,num2){
            return num1+num2;
        }
        var res=test1(100,200);

        2.函数作为方法调用
            对象中可以包含属性和方法,对象的属性就相当于是变量,对象的方法可以使用函数来创建。
        通过对象调用方法的方式来调用函数。
        var student = {
                method:function(num1,num2){
                    alert("有参数的函数");
                    }
            }
        student.method(120,200);

        3.使用构造函数调用函数 --  通过new 来调用函数
        function test1(num1,num2){
            return num1+num2;
        }
                var rest= new  test1(100,200);

        
        4.作为函数方法调用函数
            javascript中有专门调用函数的方法
            call()
        function test5(num1,num2){
                return num1+num2;
            }
        
        var rest=test5.call(rest,100,200);


            apply()
        function test5(num1,num2){
                return num1+num2;
            }
        var  prame=[200,200];
        var rest=test5.apply(rest,prame);

3.call()与apply()的区别?
        call()与apply()的共同之处:
            1.都是通过当前函数名称调用
            2.call()与apply()的第一个参数是它们的返回值
        call()与apply()的不同之处:    
            call()方法的参数从第二个开始是函数本身所需的参数值,逐一传入。
            apply()方法的第二个参数是函数本身所需参数的数组。
        两个方法都使用了对象本身作为第一个参数。 
        两者的区别在于第二个参数: 
            apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入,
            而call则作为call的参数传入(从第二个参数开始)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值