1,全局作用域
全局作用域在页面打开时创建,在页面关闭时销毁,在全局作用域中,一个对象window,他代表一个浏览器窗口,它由浏览器创建,我们可以直接调用
我们在全局作用域中创建的变量,可以作为window中的属性获取到,在全局作用域中创建的函数我们也可以window中的方法获取到
例:
所有的浏览器都支持window对象,它代表的时浏览器的窗口,所有的JavaScript中的变量,函数都是window对象中的一员,全局变量是window的属性,全局函数是window的方法;甚至HTML DOM的document也是window对象中的一员;
直接写在JavaScript中的代码都保存在全局作用域中
全局作用域的变量是全局变量,在页面中的任意一部分都可以访问到
- 函数作用域
调用函数时就会调用函数作用域,在函数执行完毕后,函数作用域就会销毁,我们每调用一次函数就会创建一个新的函数作用域,它们之间时相互独立存在的;
在函数作用域中我们可以访问全局作用域,但在全局作用域中我们无法访问到函数作用域,在函数作用域中我们可以用window对象来获取到全局作用域;
例:
例:
在全局作用域中访问函数作用域中就会报错,因此我们无法在全局作用域中获取到局部变量
当函数作用域在获取一个变量时,它会在自身作用域中先进行查找,有就会直接进行使用,没有就会对上一个函数作用域进行查找,直到全局作用域,如在全局作用域中还没查找到,就会进行报错ReferenceError