• 第三章 Js变量的作用域和匿名函数


    3.1

    先看下面的事例:

    ①var temp=0;

    ②temp=0;

    当js解析器检测到①这种情况的时候,解析器会为这个变量开辟一个内存空间,如果前面已经存在这个变量,就会把这个变量覆盖掉。

    当解析器检测到①这种情况的时候,解析器会寻找当前对象的父级对象有没有这个变量,以此查找,只到找到位置;如果还找不到,就会在windows对象里定义这个变量。

    再看下面例子

    function f() {
          var _temp = 0;
          console.log(_temp);
    }
    f();
    console.log(_temp);
    
    ②function f() {
          _temp = 0;
          console.log(_temp);
    }
    f();
    console.log(_temp);

    大家看可以在文件夹第三章01.htm、02.htm中看到两段代码,大家可以先猜测下执行结果。

    从上面的代码中大家可以总结出
    ⒈我们定义变量的时候如果加上var 就会避免给全局增加不必要的变量,我们定义变量的时候尽量前面加 var
    2.函数内部定义的变量是私有的

    3.2匿名函数

    在上一节大家已经看到了匿名函数。匿名函数是一类特殊的函数,不用调用立即执行,并且在里面的定义的变量不会影响到函数外面。

    这样,匿名函数就有了一个特殊的用途,放置全局污染;Jquery就是一个匿名函数

    (function (z, v) {
       // jquery code
    })(window);
    
    这里等价的写法就是
    
    function myfun(z, v) {
       // jquery code
    });
    
    myfun(window);

    大家对照参考下,就可以明白匿名函数的写法了

  • 相关阅读:
    2020CCPC秦皇岛 K 【Kindom's Power】(树上贪心dp)
    对于树上状态机dp问题的一些总结与思考
    PTA_L3题解集
    PTA_L2题解集
    树上dp_学习笔记
    2020牛客国庆集训派对day2 B【Cheap Delivers】(最短路+状压dp)
    2020牛客国庆集训派对day1
    Codeforces 1426F【Number of Subsequences】(dp)
    2019icpc陕西省赛
    CF1281E【Jeremy Bearimy】(树上点对最大值/最小值和)
  • 原文地址:https://www.cnblogs.com/blowfish/p/3245215.html
Copyright © 2020-2023  润新知