<body> <!-- 1. 区别1 * 全局做用域以外,每一个函数都会建立本身的做用域,做用域在函数定义时就已经肯定了。而不是在函数调用时 * 全局执行上下文环境是在全局做用域肯定以后, js代码立刻执行以前建立 * 函数执行上下文是在调用函数时, 函数体代码执行以前建立 2. 区别2 * 做用域是静态的, 只要函数定义好了就一直存在, 且不会再变化 * 执行上下文是动态的, 调用函数时建立, 函数调用结束时就会自动释放 3. 联系 * 执行上下文(对象)是从属于所在的做用域 * 全局上下文环境==>全局做用域 * 函数上下文环境==>对应的函数使用域 --> <script type="text/javascript"> 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> </body>