Javascript 全局变量原点

Javascript 全局变量原点,javascript,Javascript,我有一个有趣的问题。 我在我的项目中检测到全局变量height。 Project有数百个文件,因此height变量出现数千次。 显然,我忘记了某个地方的var运算符。 如何跟踪此全局变量来源? UPD: 正如我已经说过的,变量发生了数千次。 我真的不知道它会是什么样子: // forgotten var: height = 'something'; // or forgotten comma var a = 1, b = 2 height = 3; 所以我绝对不能手动搜索它

我有一个有趣的问题。

我在我的项目中检测到全局变量
height

Project有数百个文件,因此
height
变量出现数千次。
显然,我忘记了某个地方的
var
运算符。

如何跟踪此全局变量来源?

UPD:
正如我已经说过的,变量发生了数千次。
我真的不知道它会是什么样子:

// forgotten var:
height = 'something';

// or forgotten comma
var a = 1,
    b = 2 
    height = 3;
所以我绝对不能手动搜索它。

有什么建议吗?

等号是意外创建全局变量的唯一可能方法。唯一的其他方法是将其指定为全局对象的属性,这不可能是偶然的。因此,您可以使用以下方法在文件中搜索分配给
高度的作业:

grep -e '(^|\s)height\s*=' -R *
通过这些赋值,您可以确定在何处创建
height
,以及需要在其中声明的范围


顺便说一句,在
中“使用strict”模式下,JavaScript会抛出一个错误,而不是创建一个隐式全局,这可能更可取。

您可以在chrome中使用开发人员工具进行调查。@evolutionxbox,我想知道,到底是怎么回事?可能重复
grep-e'height\s*='
?亲爱的@Paulpro,谢谢您的建议。您的regexp找到了数百个匹配项,包括
一些其他\u高度
变量。这不是很有帮助。