一、JavaScript中 作用域
在JavaScript中 作用域分为两种: 一种是全局作用域, 一种是局部作用域。
1、全局作用域:
全局作用域是最大的作用域,在全局作用域中定义的变量可以在任何地方去使用。浏览器页面打开的时候,会自动给我们生成一个全局作用域window
。作用域一直会存在,直到页面关闭的时候会销毁,我们在浏览器控制台能够访问的变量都是全局作用域。
2、局部作用域:
局部作用域就是在全局作用域底下开辟出来的一个小作用域,在局部作用域中定义的变量只能在这个局部地区可以使用,不能越界,在JavaScript中只有函数能够生成一个局部作用域,别的都不行。每一个函数,都是一个局部作用域。
二、变量的使用规则
变量的使用规则也分为两种:访问规则和赋值规则
1、变量访问规则
变量的访问规则,只能向上找,不能向下找;
先在自己的作用域内部查找,如果有,就直接拿来使用;
如果没有,就去上一级作用域寻找,如果再没有,再去上一级查找,以此类推;
如果一直到全局作用域都没有这个变量,那就会直接报错(该变量没定义)。
2、变量赋值规则
当给一个变量赋值的时候,就先要找到这个变量,再给他赋值,变量赋值规则是:
先在自己作用域内部查找,有就直接赋值;
没有就去上一级作用域内部查找;
还没有再去上一级;
如果一直到全局作用域都没有,那么就把这个变量定义为全局变量,再给他赋值。