Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';在包含的js文件的大集合中找不到变量声明_Javascript_Javascript Debugger - Fatal编程技术网

Javascript Can';在包含的js文件的大集合中找不到变量声明

Javascript Can';在包含的js文件的大集合中找不到变量声明,javascript,javascript-debugger,Javascript,Javascript Debugger,在我的网站上,页面模板中包含许多*.js文件。其中一个文件中的某些全局javascript变量声明(重新声明)会导致与其他javascript代码冲突。 因为站点上有很多文件,所以很难在代码中找到声明该变量的位置(变量名为'name',搜索结果中显示了很多文件)。 是否有javascript代码调试器可以显示声明的特定变量在代码(js文件名)中的位置 如果不只是搜索变量名,而是扩展搜索范围以查找name=,那么至少应该缩小搜索范围,只获取该变量的声明/重新声明,而不是匹配该变量正在使用的每个位置

在我的网站上,页面模板中包含许多*.js文件。其中一个文件中的某些全局javascript变量声明(重新声明)会导致与其他javascript代码冲突。 因为站点上有很多文件,所以很难在代码中找到声明该变量的位置(变量名为'name',搜索结果中显示了很多文件)。
是否有javascript代码调试器可以显示声明的特定变量在代码(js文件名)中的位置

如果不只是搜索变量名,而是扩展搜索范围以查找
name=
,那么至少应该缩小搜索范围,只获取该变量的声明/重新声明,而不是匹配该变量正在使用的每个位置

两个旁注

  • 为了避免将来出现这种混乱,JavaScript应该真正避免使用这样的全局变量。尝试命名变量的名称空间,以避免此类冲突。请阅读如何阅读

  • 您应该尝试将所有JavaScript文件最小化为一个文件,以避免不必要的HTTP请求。在最小化过程中,您很可能会收到关于此类变量冲突的警告


  • 通过JsLint运行代码。选中除“第一次出错时停止”、“安全子集”和“adsafe”之外的所有复选框,因为您只想知道全局变量是什么

    通过将代码封装在一个闭包中,可以使变量成为私有变量,如下所示

    (function(){
        var yourPrivateVariable = 0;
        window.yourGlobalVariable = 0;        
    }());