我的网站上的页面模板中包含许多*.js文件。其中一个文件中的某些全局javascript变量声明(重新声明)会导致与其他javascript代码发生冲突。因为网站上有很多文件,所以很难在代码中找到声明变量的位置(变量名为"name",搜索结果中显示了很多文件)。有没有javascript代码调试器可以显示代码(js文件名)中声明的特定变量的位置?
通过JsLint运行代码http://www.jslint.com/lint.html.选中所有复选框,除了"第一次出错时停止"、"安全子集"one_answers"adsafe",因为你只想知道全局变量是什么。
您可以通过将代码封装在类似的闭包中来使变量私有
(function(){
var yourPrivateVariable = 0;
window.yourGlobalVariable = 0;
}());
如果您不只是搜索变量名,而是扩展搜索以查找name =
,那么您至少应该缩小搜索范围,只获取该变量的声明/重新声明,而不是匹配该变量正在使用的每个位置。
两侧钞票
-
为了避免将来出现这种混乱,JavaScript应该真正避免使用这样的全局变量。尝试为变量命名名称空间,这样可以避免此类冲突。阅读这个SO关于如何.的问题
-
您应该尽量将所有JavaScript文件最小化为一个文件,以避免不必要的HTTP请求。在最小化过程中,您也很可能会收到关于此类变量冲突的警告。