使用多个JS文件 - 变量/函数重叠。

时间:2016-11-02 16:42:53

标签: javascript html variables

我在一个HTML文件中引用了多个JS文件。我知道这些JS文件中的变量和函数名称不应该重叠。但是,仅限于仅全局变量或所有变量(甚至是函数中的局部变量)?

1 个答案:

答案 0 :(得分:1)



// These will go into global scope

nonKeywordedVarA = true; // just don't

var nonKeywordedVarC = true;

function leaky () {
  nonKeywordedVarB = true;
}

// These will stay where you put them

function nonLeakyA () {
  var functionScoped = true;
}

function nonLeakyB () {
  var functionScoped = false;
}

if (true) {
  let blockScoped = true;
}

if (true) {
  let blockScoped = false;
}


leaky();
nonLeakyA();
nonLeakyB();

// Here we log global scope
console.log(typeof nonKeywordedVarA)
console.log(typeof nonKeywordedVarB)
console.log(typeof nonKeywordedVarC)
console.log(typeof functionScoped)
console.log(typeof blockScoped)




仅限于同一范围内的变量:

  1. 在没有varletconst关键字的情况下声明的变量(例如someVar = true)。这些直接泄漏到全局范围(例如window对象)

  2. 在任何函数范围之外声明的变量(或let的情况下的块范围)

  3. 简而言之,您的问题的答案是不要担心不同范围内的同名变量。