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

    JS的全局作用域和局部作用域

    作用域:变量或者函数可访问的一个范围,以函数划分,一个函数块就是一个作用域

    1) 全局作用域,整个文档中都可以使用(变量或者函数在函数外面声明)

    声明方法:1 在函数外声明

                  2 变量不用var 声明,直接给变量赋值(不推荐使用)

                   不管在函数内还是函数外声明都是全局变量

    全局变量在任何地方都可以访问的到原因:全局变量是window下的属性,window是一个全局对象,在任何地方都可以使用

    注意:尽量避免使用全局变量,声明的时候一定要加var

     1 var a=12;//没在函数内声明,是全局变量
     2 
     3  console.log(a);//12
     4 
     5  function fn(){  //没在函数外声明,全局作用域
     6 
     7           var b=20;//局部作用域,函数块外访问不到
     8 
     9       c=30; //没带var 是一个全局变量
    10 
    11  }
    12 
    13  fn();
    14 
    15 console.log(c); //30  全局变量,不建议使用
    16 
    17  b=1000;
    18 
    19 </script>
    20 
    21 <script type="text/javascript">
    22 
    23   console.log(a); //12  全局变量
    24 
    25  console.log(b); //1000
    26 
    27   fn(); //12  全局函数
    28 
    29  

    2)   局部作用域,函数范围内声明

    变量或者函数在函数内部,作用域仅在声明的这个函数内,在函数外无法访问

    注意:1 作用域的查找是函数声明而非调用

    2 函数可以嵌套

    3嵌套的函数(局部函数)可以访问父函数的内容

     1 function  fn(){
     2          var a=10; //函数内声明  局部变量
     3          var b=20;
     4          // 局部函数
     5          function  fn1(){
     6              console.log(a+b); //30  局部函数可以访问父作用域内的内容
     7          }
     8          fn1();
     9    }
    10 
    11    fn(); //  30
    12    console.log(a); //报错  局部变量 外面访问不
  • 相关阅读:
    curd_4
    curd_2
    Python Regex库的使用
    Python Assert 确认条件为真的工具
    Python Regex库的使用(2)
    Python lambda的用法
    Python 列表综合
    with ss(date,date2) (select * from sysdummy1) select * from ss
    延迟执行函数
    ObjectiveC 的基本数据类型、数字、字符串和集合等介绍
  • 原文地址:https://www.cnblogs.com/xubj/p/7874985.html
Copyright © 2011-2022 走看看