全局执行环境
全局执行环境:这是一种默认和基础的执行环境。如果代码不在任何的函数中,那么它就是在全局执行环境中。他做了两件事情:首先,它创建了一个全局对象 - windows(如果是浏览器的话),并且把this的值设置到全局对象中。在程序中,只会存在一个全局执行环境。
函数执行环境
函数执行环境:每次当函数被调用的时候,就会为该函数创建一个全新的执行环境。每个函数都有他们自己的执行环境,但是他们仅仅是在函数被调用的时候才会被创建。其可以有任意多个函数执行环境。无论新的执行环境在什么时候被创建,它都会按照定义的顺序依次执行一系列的步骤,不过这些我们稍后会讲。
eval执行环境
eval函数执行环境:在eval函数中执行代码也会获得它自己的执行环境,但是eval并不经常被Javascript开发者所使用,所以这里我们目前并不打算讨论它。