【问题标题】:Javascript variables conflict in different files不同文件中的Javascript变量冲突
【发布时间】:2020-04-26 03:59:57
【问题描述】:

我在两个不同的 javascript 文件中使用 const 关键字声明了两个具有相同名称的变量。但是,当我将这两个文件一起导入网页时,我仍然收到错误。

我知道 var 声明了会发生冲突的全局范围变量,但我听说过 const 并且不要那样做。

我该如何解决这个问题。

【问题讨论】:

  • 您需要检查 const 变量是否在文件中或任何方法之外全局声明。如果你在任何闭包方法之外声明了它们,那么它会自动全局可用。
  • 如果您提供更多说明并发布您的代码会很好。
  • 发布您的代码并以示例为荣
  • 是的,我已经毫无障碍地宣布了它们。这就是我想知道的是否可以使它们不干扰但仍使它们可用于所有功能。

标签: javascript named-scope


【解决方案1】:

如果您只是在寻找一个简单的解决方案,那么在文件中包含代码块将可以作为自执行函数或只是一个普通块:

// On both files
(function(){
    const x = 123;
})();

// or just a code block
{
    const x = 456;
}

但是,这通常可以通过使用 webpack 之类的预处理工具来解决(并将代码组织成模块以保持独立),或者至少使用不同的类和函数。

【讨论】:

  • 但是我需要在同一个文件中的多个函数之间访问变量,变量总是会发生冲突吗?
  • @ArpitGupta 您可以在文件范围的代码块中使用函数。当您在文件的最顶层范围内时,您的变量将发生冲突,因为它们在全局范围内。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-22
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 2010-12-10
  • 1970-01-01
相关资源
最近更新 更多