什么叫做作用域呢?
在我们写的代码中所用到的名字并不是一直有效的,那么限制这个名字在这段代码的有效范围就是这个名字的作用域。可以说作用域其实就是可访问变量范围的集合。 在JavaScript 中, 对象和函数同样也是变量。也就是说在JavaScript 中, 作用域为可访问变量,对象,函数的范围集合。作用域有全局作用域和局部作用域,可以这样来解释,在函数之外调用的变量就是全局变量,在函数之内调用的变量是局部变量,而这其中全局变量有着全局作用域,也就是说全局变量在这个网页中的任意地方都可以使用,包括网页中的所有脚本和函数。局部作用域则只能在当前的函数中生效,正因此,在另一个函数中可以定义一个相同名称的变量,二者相互不影响。但是在函数内定义的变量没有用var或let等来声明,那么这个变量是全局变量,其有着全局作用域。
变量的生命周期:
(1)局部变量的生命周期:在他被声明时初始化,在函数结束后被销毁。
(2)全局变量的生命周期:在他被声明时初始化,在页面被关闭后销毁。
在HTML中,全局变量是window对象下的属性,所有的数据变量都属于window,你所创建的任何东西都隶属于window对象下。
var a = 1;
function wen() {
};
console.dir(window) // 在这里你可以找到名字为a和wen的变量
而且全局变量可以覆盖window对象里的变量或函数,局部变量可以覆盖全局变量和函数。