2011-10-31 4 views

答えて

8

すべてのグローバルに定義されたデータ(事前定義されたものを含む変数と関数など)を照会するためのウィンドウオブジェクトを介してループすることができる:

for (var key in window) { 
    console.log(key + "=" + window[key]); 
} 

ソースコードを分析するため、JSLintを使用します。

+0

* for..in *は、列挙可能なプロパティのみを返します。また、すべてのユーザーエージェントがウィンドウオブジェクトを持っているわけではないため、グローバルオブジェクトを厳密に使用することを強くお勧めします。 – RobG

1

あなたが好きなものに役立つブラウザ拡張機能を使用することができます:Firefoxの

クローム

で-Developerツール]ウィンドウ

オペラ

で-Dragonfly
2

私はかなりのようで

-Firebug拡張子をFirefoxのFirebug拡張機能。

ここでは、グローバル(つまりウィンドウ)オブジェクトのすべてのプロパティを列挙するDOMタブがあり、タイプによって色分けします。これらは本質的にグローバル変数です。

Firebug DOM tab

0

私は私に私のプロジェクトのコード内のすべてのjavascriptの変数を表示するには、この正規表現を使用していました。

[a-zA-Z0-9]* = .*; 

次に、すべての変数がグローバルではないことを視覚的にスキャンしました。 (つまり、パラメータが関数に渡されていない限り、それらの隣に「変数」があります)。

私は、Sublime Text 2の素晴らしいマルチファイル検索を使用して、正規表現を許可し、マッチの前後のコンテキストを無効にしました。私はまた、自分のjavascriptファイルを含んでいるフォルダだけを検索するように検索したので、他のフレームワークや言語の変数は表示されません。これにより、すべての変数が順番に現れるようになりました。グローバル変数のリークを確認するのは簡単でした。

これが役立ち、あまり混乱しないことを願っています。私は正規表現newbですが、これは私のために働いた。自分のプロジェクトで約5分で3つのグローバルなリークが見つかりました。

関連する問題