JS高级一

JS高级部分

a.具体认识函数 b. 具体认识对象 c.事件操作 d.ajax请求

JS函数:

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

函数的创建:

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

函数按照有没有名称分为有名参数和匿名参数

有名参数:function test1(){}

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

函数按照有没有参数分为无参函数和有参函数

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

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

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

函数按照有没有返回值分为:有返回值的函数和无返回值的函数

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

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

有返回值的函数:function test2(){return xxx}

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

函数的调用:1.要什么给什么 2.给什么收什么(变量收)

a.函数表达式

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

表达式除了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);
    }

b.new Function()--通过new Function(函数的参数,函数体中的代码)

var myFunction = new Function("a", "b", "return a * b");
        var x = myFunction(4, 3);
c.函数提升

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

function my1(){

           alert("测试函数");

}

my1();

函数提升---先调用没有创建的函数,然后在创建函数,

在执行的时候创建函数会提升到调用函数之前执行。

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

d.自调用函数---将需要被调用的函数用“()”包围,然后最后跟随一个“()”表示调用。

(function test3(){alert("自调用函数");})();
        (function test3(num1,num2){
               alert("自调用函数--num1=="+num1+",num2=="+num2);
           })(100,200);

e.函数可作为一个值使用

        function myFunction(a, b) {
                    return a * b;
        }
        var num = myFunction(2, 3);
        var x=num * 2;

        var x = myFunction(2, 3) * 2;

f.函数是对象

在js中使用typeof操作符判断函数类型将返回“function”。

        function my1(a, b) {
                    return a * b;
        }
        alert(typeof my1);//function        

但是js函数描述为一个对象更加准确。

js函数有属性和方法。

arguments.length属性返回函数调用过程收到的参数个数。

        function myFunction(a, b) {
                return arguments.length;
        }
        toString() 方法将函数作为一个字符串返回.
        function myFunction(a, b) {
                return a * b;
        }
        var txt = myFunction.toString();

g.函数参数

函数的参数分为显式参数(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);

h.函数的调用

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的参数传入(从第二个参数开始)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值