优点
1 .减少变量的个数,减少由于实际参数和形式参数的数据传递带来的时间消耗
2
缺点
1 .生存周期较长,过多的全局变量会占用较多的内存单元
2 .函数体内的语句就可以绕过函数和返回值进行存取,破坏了函数的封装性,本来的函数就像一个黑匣子,一般是通过函数参数和返回值进行输入和输出,函数内部相对于独立。但是函数中如果使用了全局变量,使得函数对于全局变量产生了依赖,同时,降低了函数的可移植性
3 .全部变量使函数的代码可读性降低,由于多个函数都可能使用全局变量,函数执行时全局变量的值可能随时发生变化,对于程序的差错和调试非常不利
4 .命名冲突。
5 .难以测试:任何依赖全局变量才能正常工作的函数,只有为其重新创建完整的全局环境才能测试他,这就意味这除了要管理全局环境的修改,还要在两个全局环境中管理他们,生产环境和测试环境
解决办法
1 .单全局变量:所创建的唯一全局对象名是独一无二的,并将你所有的功能代码都挂在这个全局对象上,因此每隔可能的全局变量都成为你唯一的全局对象的属性,从而不会创建多个全局变量
2 .命名名空间。
3 .有没有类似与vuex之类的状态存储器啊,这样解决感觉很高端
4 .引入一些模块来处理他。
基础概念
1 .在浏览器中,window对象往往重载并等同于全局对象,因此任何的全局作用域中声明的变量和函数都是window对象的属性
2 .