1.作用域与作用域链

 理解
            就是一块“地盘”,一个代码段所在的区域
            它是静态的(相对于上下文对象,上下文是动态产生的,函数执行前),在编写代码时就确定了。
          但是你调用两个fn(),作用域就一个,在你写代码时就确定了
        分类
            全局作用域
            函数作用域
            没有块作用域(ES6有了)if(true){ var a = 3}
        作用
            隔离变量,不同作用于下变量不会有冲突
 
 
产生多少作用域:N+1
<script type="text/javascript">
/*  //没块作用域
  if(true) {
    var c = 3
  }
  console.log(c)*/

  var a = 10,
    b = 20
  function fn(x) {
    var a = 100,
      c = 300;
    console.log('fn()', a, b, c, x)
    function bar(x) {
      var a = 1000,
        d = 400
      console.log('bar()', a, b, c, d, x)
    }

    bar(100)
    bar(200)
  }
  fn(10)
</script>

 

 
posted @ 2019-11-07 14:00  燕子fly  阅读(144)  评论(0编辑  收藏  举报