任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,控制着变量与函数的可见性和生命周期。
作用域是javascript编程中一个重要的运行机制,在javascript同步与异步编程以及js内存整理中起着至关重要的作用。
在js中形成作用于的条件:
-
函数的调用
-
with语句
- with语句会创建自己的作用域,因此会增加其中的执行代码的作用域长度
-
全局作用域
-
块级作用域
全局作用域(Global Scope)
在代码的任何地方都能访问到的对象拥有全局作用域。- 最外层函数和在最外层函数外面定义的变量拥有全局作用域。
- 所有未定义直接赋值的变量自动声明为全局作用域。
- 所有window对象的属性拥有全局作用域,一般情况下,window对象的内置属性都拥有全局作用域。
例如:window.name,window.location,window.top.