执行环境
分为全局执行环境和函数执行环境
全局执行环境
- 全局环境中,变量和函数都是window对象的属性和方法
- 代码载入时,创建全局执行环境
- 关闭标签页或浏览器时,销毁全局环境
注意:全局环境下, 这三种写法是等价的。
var str = '123'
str = '123'
window.str = '123'
函数执行环境
- 函数运行时开启(注意创建时没有开启)
- 函数运行完销毁
作用域
分为变量作用域和函数作用域
变量作用域
- 全局变量在函数内外都可以访问
- 函数内的变量,只能在函数内访问
全局变量的优缺点:
优点:作用范围广,减少参数传递带来的时间消耗
缺点:全局变量会驻留内存;破坏函数的封装性;造成全局污染
函数作用域
略
作用域链
// 在func2中找不到变量a,就会往func1找,func1找不到,就会往全局环境找。
var a = 1
function func1 () {
var b = 2
function func2 () {
var c = 3
console.log(a)
}
}