zoukankan      html  css  js  c++  java
  • js函数(续)

    一、全局变量和局部变量
    全局变量:当前js页面中均可使用的变量【声明在函数外面的变量】,整个js页面中均可以使用。
    局部变量:声明在函数内部的变量,只能在函数内部使用。
    eg:

        var a = 1;
        console.log(a);
        function test(){
            console.log(a);  //1
            var b = 2 //
            c = 3;  //c变量为全局变量,它的声明提前了【在页面的开始声明】
            console.log(b);  //2
        }
        console.log(b);  //错误提示:b is not defined

    二、函数的使用
    函数作为函数的参数使用:(可以作为回调函数使用)
    eg:

        function test(fun){
            var msg = '我是test()函数中的变量msg';
            fun(msg);
        }
        //函数test的调用
        test(function(param){
            console.log(param);  //输出:我是test()函数中的变量msg
        });

    函数作为返回结果来使用:
    eg:

        function test(){
            return function(){
                console.log('我是test()函数的返回函数中的输出语句');
            };
        }
        //函数test的调用
        test();   //test();的返回值为:function(){console.log('我是test()函数的返回函数中的输出语句');}
        test()();  //输出:我是test()函数的返回函数中的输出语句


    三、值传递与地址传递【简单叙述一下】
    a.变量是通过值传递的。后面变量值改变不影响前面变量的值【相当于值的复制
    b.对象是通过地址传递的。赋值时使用的是指向该对象的指针地址,获得该指针地址的变量改变
    对象属性值,其他拥有相同指针地址的变量指向的堆空间属性值也相应更新改变,所以其前面对象相应的属性值会发生改变。

    四、闭包

        //闭包  是函数访问上下文中的变量
        var arr = [];
        for(var i=0;i<5;i++){
        /*
            //这样的代码会有闭包现象
            arr[i] = function(){
                console.log(i);
            };
        */
        
            //解决闭包问题,使用立即执行函数来动态获得相应参数i的值
            arr[i] = (function(num){
                    return function(){
                        console.log(num);
                    };
            })(i);
        }
        console.log(arr);  //Array(5) [i(),i(),i(),i(),i()]
        arr[0](); //0
        arr[1](); //1
        arr[2](); //2

           

  • 相关阅读:
    Max History CodeForces
    Buy a Ticket CodeForces
    AC日记——字符串的展开 openjudge 1.7 35
    AC日记——回文子串 openjudge 1.7 34
    AC日记——判断字符串是否为回文 openjudge 1.7 33
    AC日记——行程长度编码 openjudge 1.7 32
    AC日记——字符串P型编码 openjudge 1.7 31
    AC日记——字符环 openjudge 1.7 30
    AC日记——ISBN号码 openjudge 1.7 29
    AC日记——单词倒排 1.7 28
  • 原文地址:https://www.cnblogs.com/nzcblogs/p/11177140.html
Copyright © 2011-2022 走看看