zoukankan      html  css  js  c++  java
  • 我理解的作用域

    JavaScript采用静态作用域:也叫词法作用域,函数的作用域是定义的时候就确定了;(因为JavaScript采用的是词法作用域,函数的作用域基于函数创建的位置。)

    var value = 1;
    
    function foo() {
        console.log(value);
    }
    
    function bar() {
        var value = 2;
        foo();
    }
    
    bar();
    
    // 结果是 1
    分析,从上到下未执行时候foo中的value在全局条件下,此时的value是等于1的,而不会随着foo在bar中执行,value就变成2了;
    所以是静态作用域,函数声明的时候就确定了作用域
    这篇文章这样分析也可以 https://github.com/mqyqingfeng/Blog/issues/3
    执行 foo 函数,先从 foo 函数内部查找是否有局部变量 value,如果没有,就根据书写的位置,查找上面一层的代码,也就是 value 等于 1,所以结果会打印 1。

      

  • 相关阅读:
    ES6(二)
    ES6
    bootstrap
    数组对象
    bootstrap
    html5(二)
    css3转换、动画、布局
    整理的一些兼容写法
    css渐变、背景、过渡、分页
    css3(一)
  • 原文地址:https://www.cnblogs.com/qqfontofweb/p/11932792.html
Copyright © 2011-2022 走看看