现有一项目,里面有一大堆声明时候没有加关键字var的变量有没有什么工具可以检查到 在声明javascript变量的时候没有加关键字var,而且支持批量添加var

解决方案 »

  1.   

    有难度 可以通过运行你的JS 和不运行你的JS  2次枚举 window对象的属性比较 来获取所有的全局变量但也仅仅是获取到这个列表 至于VAR添加在哪里~~~~~
      

  2.   

    这绝对不是个小工程,想要考虑周全很复杂。下面的C#代码是给你提供的一个思路,真正的实现绝非这么简单。
    string str = @"i = ""abcdef"";
                    j = ""sadkfjlsdjf"";
                    function test() {
                    dd  = ""dljfs"";
                    alert(dd);
                    }";
               Regex reg = new Regex(@"(?is)(?!function|for|if)(\b[_a-z][a-z\d_]*\b)(?![()""])(?<!\1.+?\1)");
               Console.WriteLine(reg.Replace(str,m=>"var "+m.Value));
      

  3.   

    尤其当你引用了外部JS,而外部JS里定义了全局变量,你在页面里又要引用那个全局变量的时候,自然是不应该加VAR变成局部变量的。但你这样一来,就完了。想事得想全。没想全的,哥们们替你想了,听完就赶紧结了,没什么可讨论的。这个要是成立的话,早有人解决了,你搜一下看看有没有这种专门小工具? 专业的IDE包括专门的调试器,虽然会检查,包括涉及到的不同文件,但也不敢作主给你批量添加的。“批量添加”,光是这四个字就太武断了。