javascript --执行上下文,作用域

执行上下文

  顾名思意就知道他是动态的,只在代码运行的时候产生

作用域

  顾名思意就知道它是一个"领域",并且这个"领域"在一开始就规划好, 不会在改,

var d;
function fnd(){
    console.log(d);//undefined
};
(function(f){
    var d=20;
    f();
}(fnd));

  上面的例子就很好的说明了这一点,因为在javascript中只有函数能生成作用域,在加上作用域在一开始就固定了

    >这样我们就可以推测出d=undefined

  当然如果作用域不是全局作用域,那么如果里面有自由变量就会向上遍历,找不到就undefined

 

执行上下文和作用域的区别

    1.执行上下文为动态的,作用域是静态的,或者可以说这是静态作用域

    2.可以没有上下文,但一定会有静态作用域,因为你不执行函数哪来的上下文?

 

posted @ 2016-12-21 14:22  夏风微凉  阅读(111)  评论(0)    收藏  举报