为什么全局变量被认为是糟糕的做法?

为什么全局变量被认为是糟糕的做法?

我一直看到警告不要在JavaScript中使用全局变量,但是人们说这是因为全局名称空间阻塞了,这似乎是唯一的原因。我可以想象,通过将所有变量放入一个大对象中,可以很容易地解决这个问题。现在的问题是:除了方便起见,还有其他原因不使用全局变量吗?是否涉及到性能或兼容性问题?



LEATH
浏览 528回答 3
3回答

子衿沉夜

它们使全局命名空间混乱,查找速度比局部变量慢。首先,拥有许多全局变量总是一件坏事,因为很容易忘记您在某个地方声明了一个变量,并意外地在其他地方重新声明了它。如果第一个变量是本地变量,那么就没有问题。如果它是全球性的,那么它就被改写了。当你进入隐含的全局(例如,当你说someVar = someValue而不声明某人var关键字)。其次,全局变量比局部变量要花费更长的时间才能找到Javascript。速度上的差别不是很大,但是是吗?存在。

阿波罗的战车

全局变量可以显著增加耦合,显著降低代码的可伸缩性和可测试性。一旦您开始使用globals,您现在必须知道变量的修改位置和方式(即破坏封装)。大多数文献和惯例都会认为,在使用globals时,性能是您最不关心的问题。

鸿蒙传说

如果您的脚本很长,并且您使用了来自许多函数的这些变量,那么它将增加您的调试时间,因为全局变量的值可能已经从任何地方更改,所以如果您要跟踪这些变量更改到非预期值的位置,则必须全部检查它们。如果不同的程序员从页面中包含的其他脚本修改这个变量,那么这个场景就更痛苦了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript