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

    一、作用域

    域就是空间、范围的概念,而作用域简单来说就是变量与函数可访问的范围。在我们js中作用域是靠函数来形成的,函数内的变量函数外不可访问。

    作用域分全局作用域和局部作用域。

    全局作用域:任何地方都能访问到的对象拥有全局作用域;

    主要有以下三种情况:

    1.函数外部定义的变量拥有全局作用域;

    2.未定义直接赋值的变量自动声明为拥有全局作用域

    3.window对象的属性拥有全局作用域

    var n=2;
    function fn(){
    var a =4;
    c=5;
    console.log(n);//2
    }
    fn();
    console.log(fn());//4
    console.log(n);//2
    console.log(a);//报错
    console.log(c);//5

    局部作用域:一般只在固定的代码片段内可访问到,而对于函数外部是无法访问的,最常见的例如函数内部

    var n=2;
     function fn(){
          var a =4;
    }
    fn();
    console.log(n);//2
    console.log(a);//报错

    作用域链:简单来说,就是声明一个函数时,局部作用域一级一级向上包起来,类似链状。

    当我们执行函数时,先从函数内部找寻局部变量,若没用则向创建函数的作用域寻找,依次向上。

    
    

    var a=1;
    function fn1(){
    var a =2;
    var b='22';
    fn2();
    function fn2(){
    var a=3;
    fn3();
    function fn3(){
    var a =4;
    console.log(a);//4
    console.log(b);//22
    }
    }
    }
    fn1()

     
  • 相关阅读:
    linux随记
    springboot-2
    netty-lean1
    nginx
    自定义启动器
    arrayList add
    Mybatis 转义符
    idea 闪退 但是启动的服务还在解决办法
    java 通过map根据list某个字段进行合并
    java list的深拷贝
  • 原文地址:https://www.cnblogs.com/smile-xin/p/11387577.html
Copyright © 2011-2022 走看看