一尘不染

JavaScript为什么将全局变量视为不良做法?

javascript

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


阅读 315

收藏
2020-04-25

共1个答案

一尘不染

它们使全局名称空间混乱,并且查找速度比局部变量慢。

首先,拥有许多全局变量始终是一件坏事,因为很容易忘记您在某个地方声明了一个变量,而又在其他地方意外地重新声明了它。如果您的第一个变量是局部变量,那么您就没有问题。如果它是全局的,那么它将被覆盖。当您进入隐含的全局变量时(例如,您在someVar = someValue未使用var关键字声明someVar的情况下),情况就更糟了。

其次,全局变量比局部变量花费更长的时间来使Javascript“查找”。速度差异不大,但 确实 存在。

2020-04-25