- javascript自带一个window全局变量,alert,console等方法存在于全局变量中。 若定义变量不使用var,let,const,那么该变量默认为一个全局变量
a = 8;
console.log(window.a);
优点:
-
全局可访问:通过将变量赋值给
window
对象,可以将其变成全局变量,从而在整个页面的任何地方都可以直接访问该变量。这在需要在不同的模块或函数中共享数据时非常方便。 -
简化命名空间:通过将变量赋值给
window
对象,可以减少全局命名空间的复杂性。避免了在多个模块中使用长命名空间来引用相同的变量。 -
调试和测试:在调试和测试过程中,通过将变量赋值给
window
对象,可以在开发者工具的控制台中直接访问变量,方便调试和测试。
缺点:
-
全局污染:将变量设置为全局变量可能导致全局污染,特别是在大型项目中。全局变量的增加会增加可能的命名冲突和不可预测的行为。
-
安全风险:使用全局变量存在一定的安全风险。恶意代码可能会利用全局变量进行攻击或篡改数据。
-
可维护性:过多的全局变量会增加代码的复杂性和维护难度。代码的可读性和可维护性可能会降低,因为全局变量的来源和使用不明确。