JavaScript高级(1)

javascript高级部分

具体认识函数

具体认识对象

事件操作

ajax请求

1.函数表达式

表达式---有运算数据和运算符号组成的运算的式子。

表达式除过 1+1 / 10>3 / true || false / typeof str这些,

还有对象调用属性/对象调用方法都是表达式。

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

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

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

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

    function  test1(num1,num2){
        return num1+num2;
    }

    function  test2(){
        var res=test1(100,200);
    }

    var my1=function(num1,num2){
        return num1+num2 };

    function  test2(){
        var res=my1(100,200);
    }
        
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);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值