zoukankan      html  css  js  c++  java
  • JS作用域

    作用域

    作用域:变量可以起作用的范围

    全局变量和局部变量

    • 全局变量

      在任何地方都可以访问到的变量就是全局变量,对应全局作用域

    • 局部变量

      只在固定的代码片段内可访问到的变量,最常见的例如函数内部。对应局部作用域(函数作用域)

     不使用var声明的变量是全局变量,不推荐使用。
     变量退出作用域之后会销毁,全局变量关闭网页或浏览器才会销毁

    块级作用域

    任何一对花括号({和})中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是不可见的,我们称之为块级作用域。 在es5之前没有块级作用域的的概念,只有函数作用域,现阶段可以认为JavaScript没有块级作用域

    作用域链

     只有函数可以制造作用域结构, 那么只要是代码,就至少有一个作用域, 即全局作用域。凡是代码中有函数,那么这个函数就构成另一个作用域。如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域。
     
     将这样的所有的作用域列出来,可以有一个结构: 函数内指向函数外的链式结构。就称作作用域链。
     // 案例1:
     function f1() {
         function f2() {
        }
     }
     
     var num = 456;
     function f3() {
         function f4() {    
        }
     }

     // 案例2
     function f1() {
         var num = 123;
         function f2() {
             console.log(num);
        }
         f2();
     }
     var num = 456;
     f1();
     

  • 相关阅读:
    [CEOI2008] order
    Atcoder 2373 Cookie Exchanges
    [POI2011]ROT-Tree Rotations
    bzoj 5216: [Lydsy2017省队十连测]公路建设
    bzoj 5215: [Lydsy2017省队十连测]商店购物
    Codeforces 961 E Tufurama
    [九省联考2018] 秘密袭击coat
    Codeforces 961 D Pair Of Lines
    [八省联考2018] 劈配
    [九省联考2018]一双木棋chess
  • 原文地址:https://www.cnblogs.com/superjishere/p/11675268.html
Copyright © 2011-2022 走看看